他のJavaアプリケーションを管理するJavaアプリケーションを、別の画面セッションで起動しています。私の問題は、これらの管理されたアプリケーションの1つが応答していない場合、自分の管理するアプリケーションを通じてJavaプロセスを終了したいと思うことです。画面で実行中のJavaアプリケーションが画面終了で終了しない
管理アプリは、私が試した最初のものは私の管理するアプリの実行screen -S name -X quit
を作ることだったが、時間のほとんどは、これが唯一のscreenセッションを排除し、私はその実行中のJavaアプリで立ち往生screen -dmS appname java -jar path
を使用して他のアプリを起動します私にはアクセスできません。
私が調査しようとした2つ目は、Javaプロセス自体を殺すことです。それは、代わりに画面を終了しますが、私の問題はどのようにしてJavaアプリケーションのPIDを取得できますか?
ps -A
は、私が他のユーザーの中から殺したい特定のJavaアプリケーションの手がかりを与えないので役に立ちません。
自分の管理アプリケーションや、画面内で実行されているJavaプロセスを終了させるためのPIDを使用する必要があります。 しかし、私の問題を解決するための最良の方法は、Javaアプリケーションのプロセスに名前を付けることです。
何か助けていただきありがとうございます。
https://unix.stackexchange.com/questions/30370/how-to-get-the-pid-of-the-last-executed-command-in-shell-script –
もう1つの方法は、grep 'jps'の出力です。 –
grep how?すべてのjpsは私のためにPIDを印刷し、次に "jar"をどのように私が必要とするPIDを識別するでしょうか? –