web-dev-qa-db-ja.com

journalctlはsystemdサービスを再起動した後にのみ更新されますか?

Gunicornを使用したsystemdサービスがあります。関数にprintステートメントがあります。問題は、関数を呼び出したときにjournalctlが印刷出力を表示しないのに、systemdサービスユニットを参照した後の出力を表示することです。このように動作する必要がありますか?これに対する解決策は何でしょうか?

1
prof.phython

これは、stdin、stdout、およびstderrをバッファリングするPythonのデフォルトの動作によるものです。 systemdファイルの場合、ExecStart=/path/to/gunicornと同じブロック内に次の行を含めます。

Environment=PYTHONUNBUFFERED=1

無効にする別の方法については、 https://stackoverflow.com/questions/107705/disable-output-buffering を参照してください。

1
MarkM