0バイトで埋められたunix nohupログ

0バイトで埋められたunix nohupログ

バックグラウンドで監視スクリプトを実行しています。年中無休の24時間利用可能です。

スクリプトには、モニター出力に基づいて開始されたプロセスを使用してnohup出力をログファイルにリダイレクトする機能がありますhome/nohub_logs/logfile.txt

スクリプトは数時間は正常に動作しますが、その時間が経過してもログファイルの長さはまだゼロです。場合によっては、監視スクリプトを終了してスクリプトを再起動すると、いくつかの出力が表示されます。

nohup startprocessscript.sh >> /home/nohuplog &

しばらくするとログが生成されます。たとえば、スクリプトが最初の24時間以内に実行されると、24時間後にログは生成されません。スクリプトを再起動すると、ログが生成されます。

nohup時々、ログファイルが生成されたデータを取得できない理由がわからない。誰でも助けてください。

答え1

この問題の一般的な原因は出力バッファリングです。

十分なデータが書き込まれた後にのみ、スクリプト出力をログファイルにフラッシュできます。

考えられる解決策は次stdbufunbufferとおりです。パイプラインでバッファリングをオフにする

関連情報