52

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 ~]$
4

5 に答える 5

108

pkill -f次のように簡単に使用できます。

pkill -f 'java -jar'

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

pkill -f 'java.*lnwskInterface'
于 2012-12-04T21:07:43.330 に答える
43

いずれか/すべてのJavaプロセスを強制終了するだけの場合、必要なのは;

killall java

ただし、特にwskInterfaceプロセスを強制終了する場合は、ほとんどの場合、プロセスIDを削除する必要があります。

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

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

于 2012-12-04T21:08:56.500 に答える
2

複数のJavaプロセスがあり、1つのコマンドでそれらを強制終了したい場合は、以下のコマンドを試してください。

kill -9 $(ps -ef | pgrep -f "java")

「java」を任意のプロセス文字列識別子に置き換えて、他のものを強制終了します。

于 2020-07-15T02:47:49.213 に答える
1

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

ののしりの午後の後、私はスタートスクリプトに次のことを入れに行きました。

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

于 2018-05-30T14:47:59.397 に答える
0

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

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

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

于 2017-09-08T20:02:44.487 に答える