問題タブ [exitstatus]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - シャットダウンフック内からゼロ以外の終了コードで終了する方法は?
アプリの実行中に特定の情報を収集する javaagent があります。また、アプリの終了時に収集されたデータをいくつかのゴールデン データと比較し、比較が失敗した場合にゼロ以外の終了ステータスで終了することが期待されるシャットダウン フックも登録します。
ただし、 System.exit(exitStatus) を呼び出すとアプリが強制的にデッドロック状態になるため、これを行うことはできません。
ゼロ以外の終了ステータス FROM WITHIN THE SHUTDOWN HOOKで終了する方法はありますか
java.lang.Runtime.halt(exitStatus) も使用してみましたが、役に立たないようです。エコー $? 常に終了ステータスが 0 であることを示しているようです
私のアプリケーションコード
私のエージェントコード:
spring-batch - 春のバッチデータベース接続障害が適切な終了ステータスを返さない
同様の問題に関連するいくつかの投稿を確認しました。シェルスクリプトを介してスプリングバッチアプリケーションを呼び出し、終了ステータスを取得しています。実行が成功すると、すべてが正常に機能します。ExitStatus は 0 として設定されます。ただし、データベース エラーが発生した場合 (データベース エラーを作成するために、データベースの間違ったポートを指定した場合)、ExitStatus は空として返されます。コードは以下です
以下の投稿を参照し、同様に実装しました
例外がスローされた場合、ゼロ以外のコードでスプリング バッチ ジョブを終了させる
Spring バッチ リターン カスタム プロセス終了コード
シェル スクリプト: java -jar $JOBDIR/lib/feed*.jar
ジャワ:
データベース エラーの場合、メイン メソッド System.exit(exitCode) の最後に到達していません。何が間違っているのか教えてもらえますか??