永続的にプルされるJavaのアプリケーションがあります。次のように実行します。
Nohup ant> log.txt &
問題は、いつまでも続くことです。アプリケーションが終了し、「Exit 143」というメッセージが表示されます。
終了コード143はSIGTERM
に対応します。これは、kill <pid>
を実行したときにデフォルトで送信される信号です。別のプロセスまたはユーザーがアプリケーションを強制終了している可能性はありますか?より多くの情報がなければ、他に何かを提案することは困難です。
Nodejsを使用しているときに同様の問題に遭遇しましたが、実際には私のアプリとコードがそれを強制終了していることがわかりました。
私はこのようなコードを持っていました(そう、私はそのような関数名を持っていませんが、あなたは要点を理解します):
_kill_anything_that_is_still_running_from_previous_execution()
start_a_lot_of_stuff()
_
問題は、_kill_anything_that_is_still_running_from_previous_execution
_が非同期ですぐに返され、(運が悪かったため)実際の強制終了部分が常に_start_a_lot_of_stuff
_の実行終了後にのみ発生することでした。 #spawncamping
ああ、そしてJavaの場合Runtime.getRuntime().exec("bash -c \"killall whatever\"")
は、終了するのを待たなければ「非同期」です。