web-dev-qa-db-ja.com

Javaプロセスを強制終了するLinuxスクリプト

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 ~]$
46
d-man

次のようにpkill -fを使用するだけです:

pkill -f 'Java -jar'

EDIT:特定のjarを実行している特定のJavaプロセスを強制終了するには、次の正規表現ベースのpkillコマンドを使用します。

pkill -f 'Java.*lnwskInterface'
90
anubhava

任意の/すべてのJavaプロセスを強制終了する場合、必要なのはそれだけです。

killall Java

ただし、特にwskInterfaceプロセスを強制終了する場合は、ほとんどの場合、プロセスIDを削除するだけです。

PID=`ps -ef | grep wskInterface | awk '{ print $2 }'`
kill -9 $PID

それを行う必要がありますが、おそらくもっと簡単な方法があります...

38
lynks

jps を使用して、実行中のJavaプロセスをリストします。このコマンドは、メインクラスとともにプロセスIDを返します。 killコマンドを使用して、返されたIDを持つプロセスを強制終了するか、次のライナースクリプトを使用できます。

kill $(jps | grep <MainClass> | awk '{print $1}')

MainClassは、実行中のJavaプログラムのクラスで、mainメソッドが含まれています。

0
Pawan

何らかの理由でpkill -fが機能しません。それが何であれ、ps auxが私に明らかに示していることを実際に把握することは非常に難しいようです。

午後の宣誓の後、スタートスクリプトに次の内容を追加しました。

(ps aux | grep -v -e 'grep ' | grep MainApp | tr -s " " | cut -d " " -f 2 | xargs kill -9 ) || true

0
Jilles van Gurp