Gunicornを使用したsystemdサービスがあります。関数にprintステートメントがあります。問題は、関数を呼び出したときにjournalctlが印刷出力を表示しないのに、systemdサービスユニットを参照した後の出力を表示することです。このように動作する必要がありますか?これに対する解決策は何でしょうか?
これは、stdin、stdout、およびstderrをバッファリングするPythonのデフォルトの動作によるものです。 systemdファイルの場合、ExecStart=/path/to/gunicorn
と同じブロック内に次の行を含めます。
Environment=PYTHONUNBUFFERED=1
無効にする別の方法については、 https://stackoverflow.com/questions/107705/disable-output-buffering を参照してください。