2 つの Java プロセスを開始するシェル スクリプトがあります。シェルスクリプトプロセスが強制終了されたときに、すべての子も強制終了されるようにするにはどうすればよいですか? たとえば、それを殺そうとすると、Java プロセスは生きたままになります。
kill -9 myscriptID
kill
コマンドはスクリプトのみを強制終了し、スクリプトが生成した他のプロセスは強制終了しません 。すべての子プロセスを強制終了する最良の方法には、ツリー全体を強制終了するための優れた答えがいくつかあります。
とはいえ、より良い設計は、子プロセスの PID を追跡し、親SIGKILL
を送信するのではなく、それを送信してSIGTERM
(または他の方法で)、子プロセスを適切に強制終了させることです。