私は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つのスクリプトを起動しないことである場合は、可能な競合状態を回避するより安定した方法があることに注意してください。私を見てここに答えてくださいファイルをロックする方法の例。