シナリオは次のとおりです。終了しないはずのJavaデーモンがあります。ただし、予期しないエラーが発生した場合は、クラッシュしたJVMをスクリプトで再起動する必要があります。そこで、JVMを開始するループを持つバックグラウンドbashを開始するコマンドを作成しました(JVMが終了すると、再び再起動されます)。
/bin/bash -c "while true; do java ...; done" &
デーモンを停止できるようにするために、このbashバックグラウンドプロセスを強制終了することを考えました(プロセスIDをファイルに保存することによって)。これは、バックグラウンドbashがJVMを再起動しない限り機能しますが、現在実行中のプロセスを強制終了しません。したがって、bashは、強制終了コマンドをチェックする前に、現在のコマンドを終了しているように見えます。現在実行中のJVMも強制終了したいと思います。
2つのPID(1つはバックグラウンドbash用、もう1つは現在実行中のJVM用)を管理したくないので、設計上現在のコマンドを停止する「強制キル」の方法はありますか?(私は人殺しでそのようなものを見つけることができませんでした)?