web-dev-qa-db-ja.com

Nohup.out以外のログファイルにNohup出力をリダイレクトする方法はありますか?

私は頻繁にプログラムNohupを使用して、プロセスがハングアップの影響を受けないようにしています。したがって、プログラムをprogramがハングアップの影響を受けないようにするには、次のコマンドを使用します。

Nohup program &

ここで、&はプロセスをバックグラウンドで実行します。

開始すると、Nohupから次のメッセージが表示されます。

Nohup:出力を `Nohup.out 'に追加

出力をNohup.out以外のファイルに送信する方法はありますか? Nohupを使用して同じディレクトリで多くのプロセスを実行したいことがよくありますが、これを実行すると、すべての出力が1つのNohup.outファイルにまとめられます。

マニュアルページ(たとえば here )には、ログファイルを指定するオプションがないようです。これを確認してもらえますか?また、この問題を回避する方法について何か考えはありますか?

126
Andrew

GNU coreutils Nohup manページは、通常のリダイレクトを使用できることを示しています。

標準入力が端末の場合、/ dev/nullからリダイレクトします。標準出力が端末の場合、可能であれば 'Nohup.out'に出力を追加し、それ以外の場合は '$ HOME/Nohup.out'を追加します。標準エラーがターミナルの場合は、標準出力にリダイレクトします。出力をファイルに保存するには、「Nohup COMMAND> FILE」を使用します。

編集:私は最初あなたのリンクを読みませんでした。別のバージョンのNohupを使用している可能性がありますが、このセクションでは、通常のリダイレクトを引き続き使用できることを示しています。

 Nohup.out          The output file of the Nohup execution if
                    standard  output is a terminal and if the
                    current directory is writable.

標準出力と標準エラーを別のファイルにリダイレクトできます。

Nohup myprogram > myprogram.out 2> myprogram.err

または同じファイルに:

Nohup myprogram > myprogram.out 2>&1
152
lk-

より見やすくするために、ここに回答として Jim コメントを追加します。

出力をNohup program > program.out &ではなくprogram.outに書き込むには、Nohup.outを使用します

5
mrsrinivas