プログラム出口を捕捉できません。

プログラム出口を捕捉できません。

Node.jsで書かれたプログラムを実行し、実行パイプラインを使用してログファイルとして実行し、バックグラウンドで送信します。

プログラムが途中で終了し、コンソールまたはログにエラーがありません。 /var/log/messageも確認しましたが、プログラムに問題があるかどうかはわかりません。

シャットダウンを引き起こすエラー/メッセージをキャプチャするより良い方法はありますか?

現在実行されているbashスクリプトは次のとおりです。

./run_all_with_logs >> logs/my.log &

答え1

終了コードは、プロセスが外部信号によって終了されたのか、それとも(有用であると予想される)内部終了コードで自ら終了したのかを示します。

終了コードを含めるようにコマンドラインを少し拡張できます(この終了コードをデコードするには、他の質問を参照)。

(./run_all_with_logs ; echo "Final Exit Code: $?" ) >> logs/my.log &

もう少しクールにすることができます(終了ステータスのデコードなど)。

答え2

PT:の答えをもう少し向上させましょう。

デフォルトのフォームは、すべての一般出力をログファイルに送信します。

./run_all_with_logs >> logs/my.log &

エラーをリダイレクトすると、エラーを記録して通常の出力を印刷できます。

./run_all_with_logs 2>&1 >> logs/my.log &

その後、サブシェルでコマンドを実行すると、終了コードも印刷できます。

(./run_all_with_logs ; echo "Final Exit Code: $?" ) 2>&1  >> logs/my.log &

関連情報