filename 2>&1」を使用してデフォルトのリダイレクトファイル名を変更することもできます。
nohup の例[root@pythontab ~]# nohup ping www.pythontab.com & [1] 3059 nohup: appending output to `nohup.out' [root@pythontab ~]# ps -ef |grep 3059 root 3059 984 0 15:06 pts/3 00:00:00 ping www.pythontab.com root 3067 984 0 15:06 pts/3 00:00:00 grep 3059 [root@pythontab ~]#2.
[root@pythontab ~]# setsid ping www.pythontab.com [root@pythontab ~]# ps -ef |grep www.pythontab.com root 31094 1 0 07:28 ? 00:00:00 ping www.pythontab.com root 31102 29217 0 07:29 pts/4 00:00:00 grep www.pythontab.com [root@pythontab ~]#上記の例では、プロセス ID (PID) が 31094 であり、
その親 ID (PPID) が 1 (つまり、初期プロセス ID) であることに注意してください。現在の端末IDの処理。
3. & サブシェルサブシェルに関するもう 1 つの小さなヒントを紹介します。 "()" に 1 つ以上の名前を含めることで、これらのコマンドをサブシェルで実行できるようになり、多くの興味深い関数が拡張されることがわかっています。そのうちの 1 つをこれから説明します。 「()」の中に「&」を入れると、送信されたジョブがジョブリストにない、つまりジョブを通じて閲覧できないことがわかります。これにより HUP 信号の影響を回避できる理由を見てみましょう。
サブシェルの例[root@pythontab ~]# (ping www.pythontab.com &) [root@pythontab ~]# ps -ef |grep www.pythontab.com root 16270 1 0 16:13 pts/4 00:00:00 ping www.pythontab.com root 16278 15362 0 16:13 pts/4 00:00:00 grep www.pythontab.com [root@pythontab ~]#上記の例からわかるように、新しくサブミットされたプロセスの親 ID (PPID) は 1 (初期プロセスの PID) であり、これは現在の端末のプロセス ID ではありません。したがって、現在の端末の子プロセスには属さないため、現在の端末の HUP 信号の影響を受けません。 それに比べて、私はシンプルで実用的な setsid を使用することを好みます。もちろん、これは各人の好みに依存し、効果に大きな違いはありません。
以上がLinuxでプロセスをバックグラウンドで実行する3つの方法を詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。