2017-06-30 32 views
-1

他の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アプリケーションのプロセスに名前を付けることです。

何か助けていただきありがとうございます。

+0

https://unix.stackexchange.com/questions/30370/how-to-get-the-pid-of-the-last-executed-command-in-shell-script –

+0

もう1つの方法は、grep 'jps'の出力です。 –

+0

grep how?すべてのjpsは私のためにPIDを印刷し、次に "jar"をどのように私が必要とするPIDを識別するでしょうか? –

答えて

0

私はどのようにのようなアプリを管理し始めるとき、私は、引数を渡すことで、問題を解決する:これは私が

jps -m | grep helperAppを行うことによって、他のすべての中のプロセスのPIDを識別することができ

screen -dmS helperApp java -jar path helperApp

私はPIDを特定して取得しているので、プロセスを強制終了することができました。

お手伝いいただきありがとうございます。

関連する問題