いずみのメモ帳

見たこと感じたことを書き残しておきたい。

【Python】nohupコマンドで実行した時に、標準出力がnohup.outに逐次出力されない

問題

nohupコマンドを用いてPythonスクリプトをバックグラウンド実行すると、標準出力はnohup.outにログとして出力される。 しかし、以下のようにして実行すると、スクリプト実行中に逐次出力される(処理の途中で出力される)はずの出力は、スクリプトの全ての処理が終了するまで(或いは何らかの理由で処理が止まるまで)nohup.outに書き込まれない。

nohup python3 <filename>.py &

解決策

以下のように-uオプションを付けると、標準出力がnohup.outに逐次出力される。

nohup python3 -u <filename>.py &