nohupをstdoutにリダイレクトする


14

プロセスをnohupで開始させ、ファイルではなくstdoutに書き込むことは可能ですか?またはファイルと画面上にあるのでしょうか?

nohup python start.py &

に書き込みnohup.outますが、画面に出力したいのですが、nohupは接続が切れたときのヘッジとしてのみ使用されます。


しかし、接続が切断された後にプログラムが出力するとどうなりますか?
ワンブル

回答:


4
  1. nohup python start.py & tail -f nohup.outtail -f意志で殺され、再起動することができます。

  2. screen python start.py そして、自由に切断/再接続します。


10

からman nohup

標準入力が端末の場合、/ dev / nullからリダイレクトします。標準出力が端末のnohup.out 場合、可能であれば出力を追加します $HOME/nohup.out。標準エラーが端末の場合、標準出力にリダイレクトします。出力をFILEに保存するには、を使用します nohup COMMAND > FILE

(コメントに基づいて完全に改訂)
シェルを終了するか、ターミナルを閉じると、子プロセスにSIGHUP(ハングアップ、名前はターミナルがUNIXコンピューターにダイヤルインする時間に由来する)が送信され、ターミナルが存在しないことが通知されます長い接続。さらに、シェルプロセスが終了すると、子プロセスのstdin、stdout、およびstderrストリームが閉じられます。通常、これにより、子プロセスが停止します。通常、これはプロセスをユーザーなしで実行したままにしないため、良いことです。

このnohupプログラムの目的は、シェルが終了して端末が切断された後でもプロセスを実行し続けることです。そのため、出力を端末に送信すると、目的が完全に失われます。私の元の答え(nohup COMMAND | cat)は役に立ちませんでした:ターミナルが閉じられると、猫の出力が閉じられ、猫が死んでパイプが壊れてSIGPIPEがnohupプロセスに送られて死にます。目的を考えずに質問に答えました。

目的を達成するために、実行nohup COMMAND > FILEして、出力を送信するファイルの名前を選択します。次にtail -f FILE、端末で出力を監視するために使用します。

同様に、次のシェル構成を使用できCOMMAND >FILE 2>&1 </dev/null &ます。stdioストリームが端末に接続されていないコマンドを実行し、端末を閉じた後も実行を継続できます。さらに、zshでシェルビルトインを実行してdisown、シェルの終了時にプロセスを強制終了する代わりにプロセスを終了するようにzshに指示します。


1
便利な追加機能:nohupコマンドが既にファイル名で開始さtail -f filenameれている場合、ファイルに何が書き込まれているかを確認するために使用できます。
ヘネス

接続が停止すると、ファイルはもう書き込まれなくなるため、機能しません。
Davoud Taghawi-Nejad

あなたは正しい:私は質問に答えました(ターミナルに出力を送信します)が、目的を破りました。それに応じて答えを書き直しました。
dsh

-1
vladimir@lin-mint-cin:~$ tty<br>
/dev/pts/8<br>
vladimir@lin-mint-cin:~$ ln -sf /dev/pts/8 nohup.out<br>
vladimir@lin-mint-cin:~$ nohup ls<br>
nohup: ввод игнорируется, вывод добавляется в 'nohup.out'<br>
2019-05-31-090159.jpg    giphy.gif        nim_porojects   sketchbook
Aptana_Studio_Workspace  IdeaProjects         nohup.out       target
Desktop          jack_capture_01.wav  Pictures        Templates
Documents        lib              Postman         tmp
Downloads        mad              Projects        trace.edn
eclipse          Mail             prolog_ws       uinfild_hill-iskusstvo_shemotehniki_tom_1_izd4-e-1489315100.pdf
eclipse-dsl-workspace    Music            proxy-secret    Videos
eclipse-workspace    mygolo           Public          workspace-dltk
erlang_ex        my_golo_ws       rust-workspace  проекты
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.