Javaプロセス名で実行されているJavaアプリケーションの確認

Javaプロセス名で実行されているJavaアプリケーションの確認

私はSublime Text 3のJavaScriptユニットテスト用の組み込みシステムを作成しています。使っています
JSテストドライバ私のテストフレームワークで。 Sublime Textは1つのコマンドしか実行できないため、bashスクリプトを使用して操作を実行しました。 js-test-driverはJavaアプリケーションであり、すでに実行中かどうかをテストできるようにしたいです。私が知る限り、プロセス名はです。プロセス内でどのJavaアプリケーションが実行されているかをjava知る方法はありますか?javaそうでない場合は、特定のJavaアプリケーションが実行されているかどうかをどのようにテストできますか?

答え1

jps次のコマンドを使用できます。

jps | grep "[0-9][0-9]* js-test-driver"

ただし、呼び出されない可能性がjs-test-driverありますjs-test-driver.jar。まず、出力を見てくださいjps

答え2

(ほとんどのLinuxシステムでは標準である必要がありprocps-ng psます)この-Cオプションを使用して、特定の名前のコマンドに出力を制限できます。おそらくjs-test-driverコマンドパラメータのどこかにあります。以下を使用して、実行中のプロセスのすべてのパラメータを一覧表示できますjava

ps -C java -o args=

js-test-driverパラメータリストのどこからでもテストするには、次のようにします。

ps -C java -o args= | grep -q js-test-driver &&
  echo 'js-test-driver running'

pgrep上記と同じように使用することもできます。

pgrep -f js-test-driver >/dev/null && echo 'js-test-driver running'

プロセスが実行中であることを確認する理由が同時に2つのスクリプトを起動しないことである場合は、可能な競合状態を回避するより安定した方法があることに注意してください。私を見てここに答えてくださいファイルをロックする方法の例。

関連情報