Linuxスクリプトで、コンソールで実行中のJavaプログラムを強制終了します。
以下は、jarとして実行されるプロセスです。
[rapp@s1-dlap0 ~]$ ps -ef |grep Java
rapp 9473 1 0 15:03 pts/1 00:00:15 Java -jar wskInterface-0.0.1-SNAPSHOT-jar-with-dependencies.jar
rapp 10177 8995 0 16:00 pts/1 00:00:00 grep Java
[rapp@s1-dlap0 ~]$
次のようにpkill -f
を使用するだけです:
pkill -f 'Java -jar'
EDIT:特定のjarを実行している特定のJavaプロセスを強制終了するには、次の正規表現ベースのpkillコマンドを使用します。
pkill -f 'Java.*lnwskInterface'
任意の/すべてのJavaプロセスを強制終了する場合、必要なのはそれだけです。
killall Java
ただし、特にwskInterfaceプロセスを強制終了する場合は、ほとんどの場合、プロセスIDを削除するだけです。
PID=`ps -ef | grep wskInterface | awk '{ print $2 }'`
kill -9 $PID
それを行う必要がありますが、おそらくもっと簡単な方法があります...
jps を使用して、実行中のJavaプロセスをリストします。このコマンドは、メインクラスとともにプロセスIDを返します。 killコマンドを使用して、返されたIDを持つプロセスを強制終了するか、次のライナースクリプトを使用できます。
kill $(jps | grep <MainClass> | awk '{print $1}')
MainClassは、実行中のJavaプログラムのクラスで、mainメソッドが含まれています。
何らかの理由でpkill -fが機能しません。それが何であれ、ps auxが私に明らかに示していることを実際に把握することは非常に難しいようです。
午後の宣誓の後、スタートスクリプトに次の内容を追加しました。
(ps aux | grep -v -e 'grep ' | grep MainApp | tr -s " " | cut -d " " -f 2 | xargs kill -9 ) || true