特定のプロセス以外のすべてのプロセスを強制終了する方法


13

私のローカルサーバーでは、多くのJavaプロセスが実行されており、同時にEclipseを使用しています。プロセスを再起動する必要がある場合(シェルスクリプトを使用してプロセスを起動する)、起動する前に古いプロセスを強制終了する必要があります。

方法1:-( kill -9 $Pid プロセスごとに1つずつ、時間がかかる)

方法2:-( killall -9 javaすべてのプロセスで-簡単ですが、Eclipseが不必要に強制終了されます)

方法2の場合、Eclipseも殺されます。これから抜け出す方法はありますか?私はそこにいるに違いない:P

編集:私はubuntu 15.04を使用しています。


openjdkを使用していますか?
Maythux

いいえ、java-7-oracle
Atiq

私の答えを確認
-Maythux

回答:


17

このコマンドを試してください:

ps ax | grep "java" | egrep -v "eclipse" | cut -b1-06 | xargs -t kill

これは、Javaを含み、Eclipseを除外するすべてのプロセスを検索し、それらを強制終了します


3
無差別に使用しない場合は++ 1 -9。プロセスに正常に終了する機会を与える必要があります。
-Rmano

pgrepps | grep他の場合よりも、grepステートメント自体を殺すリスクがあります。
15

2
@abligh問題があるpgrepあなたはプロセスが日食を実行しているにもあるため、区別することができないpgrep -lだけで報告しますjava。@ Maythuxは単なる参考のためにegrep廃止され、使用するべきではありません。grep -Eまったく同じことを行うgrep -Eためです。だからちょうどgrep -v "eclipse"(またはあなたが空想になりたい場合[...] | grep -F "java" | grep -vF "eclipse | [...]"
コス

@kos:未テスト:pkill '/java\(.*eclipse\)\@!'
15

@ablighとは\@!?それがPerl主義である場合、pkillEREのみをサポートするため、機能しません。このタスク全体をpkill、負の先読みで既に使用している単一のコマンドに削減しようとしましたが、この理由で失敗しました。
コス

12

を使用して awk

ps ax | awk '/java/ && !/eclipse/ {system("kill "$1)}'

このコマンドはすべてのjavaプロセスを強制終了しますが、プロセスは強制終了しませんeclipse


3
よりエレガントな(そして速い)、その後@maythux私見...からの答え ;-)
Fabby

いいね、ファビーに同意する!
コス

1

どうですか:

pgrep -af 'java' | grep -Po '^[^ ]+(?!.*eclipse)' | xargs kill
  • pgrep -af 'java'javaプロセスの完全なコマンドラインで検索し、それらをリストします

  • grep -Po '^[^ ]+(?!.*eclipse)'検索されたプロセスを検索eclipseし、完全なコマンドラインにないプロセスのプロセスIDを取得します

  • xargs kill プロセスを強制終了します。


短くエレガントなソリューションのために+1。上記の2番目の手順で使用するperl正規表現がサポートされている場合、さらに効率的な(1つのコマンドのみ:) pkillソリューションpgrep/pkillを使用することが可能であったことに注意してください。残念ながらpgrep/のpkillような拡張正規表現のみをサポートしていegrep/grep -Eます。
アリエル

場合@arielfあなたは絶対right..itは、最も効率的だっただろうしているpgrep/ pkillPCREをサポートしています...
heemayl

0

jps -m | grep -v eclipse | awk '{print $1}' | xargs -t kill

jpsを使用して、パスにjavaを含むすべてのコマンドではなく、javaコマンドのみを探していることを確認します。


0
ps ax | grep "java" | egrep -v "eclipse" | cut -b1-06 | xargs -t kill

1
単に不可解なコマンド文字列を与えるのではなく、コマンドを説明する方がよかったでしょう。また、実行時間の長いコマンド「orkjavagoob.sh」
-waltinator
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.