1
Javaで書かれたアプリケーションをUnix上で実行し、起動時に2つのサブプロセス(Runtime.getRuntime().exec()
経由)を開始します。なんらかの理由でアプリケーションがクラッシュした場合、サブプロセスは強制終了されません。Java:Unix上のすべてのサブプロセスをkillする
ここで、すべてのクラッシュ時にシャットダウンフックが追加されました。これまでのところokです。しかし、私はアプリケーションのすべてのサブプロセスに対してUNIXコンソールにSIGTERMシグナル(または少なくともSIGINT)を送信したいと思います。私はps
経由でプロセスIDを見つけることができるはずですが、PIDを正しく抽出してすべてのプロセスにシグナルを送信するようにはしませんでした。
誰でも手助けできますか?
ありがとうございました!
シェルスクリプトで必要なことをする、つまりPIDを指定してプロセスを見つけ、それをシェルスクリプト自体で強制終了します。このスクリプトをjavaで呼び出します。 – Ved
アプリケーションに特定の名前がある場合、pkillはその名前で動作します。 – tartar
別のスタブかもしれない[1] http://blog.igorminar.com/2007/03/one-more-way-how-to-get-current-pid-in.html – tartar