nohup nohup.outが更新されていません。

nohup nohup.outが更新されていません。

最終的にここで最小の問題は、Linuxでnohupを使用して実行したい単純なPythonスクリプトです。 Linuxでは、次のコマンドを使用して実行します。

 nohup python test.py &

このコマンドは何もしないように見え、nohup.outには何も追加されません。 「&」なしで実行すると、出力は端末ウィンドウに正しく表示されます。私は何を見逃していますか?

 import time

 def test():
   while(True):
     print "Woke up!"
     time.sleep(5)

 if __name__ == "__main__":
    test()

答え1

コマンドを使って実行してみてくださいnohup python -u test.py &。これにより、出力がバッファリングされなくなります。

このオプションを使用して最初の行にBangパスを追加すると、スクリプトを実行可能にすることができます-u。また、コマンドを使用して実行可能ビットを設定する必要がありますchmod +x test.py

#!/usr/bin/python -u
import time
....

それからnohup test.py &

答え2

ブロックベースのI/Oバッファリングのようです。setvbuf(3)標準出力でラインベースまたはバッファリングされていない出力に対応するPythonを設定するとどうなりますか?

関連情報