web-dev-qa-db-ja.com

名前に一致するすべてのプロセスを強制終了する方法

Word amarokを含むすべてのプロセスを強制終了したいとします。実行したいコマンドを印刷することができます。しかし、どうやって実際にシェルにそれらを実行させるのですか。すなわち。

ps aux | grep -ie amarok | awk '{print "kill -9 " $2}'
Output:
kill -9 3052
kill -9 3071
kill -9 3076
kill -9 3077
kill -9 3079
kill -9 3080
kill -9 3082
kill -9 3083
kill -9 3084
kill -9 3085
kill -9 3086
kill -9 3087
kill -9 3088
kill -9 3089
kill -9 4031
221
PuercoPop

man 1 pkillから

-f     The pattern is normally only matched against the process name.
       When -f is set, the full command line is used.

これは、例えばps auxにこれらの行があるとしたら、

Apache   24268  0.0  2.6 388152 27116 ?        S    Jun13   0:10 /usr/sbin/httpd
Apache   24272  0.0  2.6 387944 27104 ?        S    Jun13   0:09 /usr/sbin/httpd
Apache   24319  0.0  2.6 387884 27316 ?        S    Jun15   0:04 /usr/sbin/httpd

Pkillの-fオプションを使ってそれらをすべてkillできます

pkill -f httpd
366
Tim Bielawa
ps aux | grep -ie amarok | awk '{print $2}' | xargs kill -9 

xargs(1):xargs - 引数リストを作成し、ユーティリティを実行します。引数をkilllsなどに渡す場合に役立ちます。

188
Nektarios

pgrepを使用

kill -9 $(pgrep amarok)
45
Eric Fortis

これをするための安全な方法は:

pkill -f amarok
25

私はこのコマンドの殺害はまさにあなたが必要としているものだと思います。このコマンドは「プロセスを名前で強制終了する」と説明されています。使い方は簡単です。例えば、

killall chrome

このコマンドはChromeのすべてのプロセスを終了させます。こちらはkillallコマンドに関するリンクです。

http://linux.about.com/library/cmd/blcmdl1_killall.htm

このコマンドがお役に立てば幸いです。

17
androidyue

pkill -xはプロセス名と正確に一致します。

pkill -x amarok

pkill -fも似ていますが、正規表現パターンを使用できます。

他のパラメータ(たとえば、-x、-f)を指定しないでpkillを実行すると、プロセス名を部分的に一致させることができます。だから "pkill amarok"はamarok、amarokBanana、bananaamarokなどを殺すでしょう。

-xがデフォルトの動作になっていたらいいのにと思います。

11
user79878

コマンドの出力を実行したい場合は、それを$(...)の中に入れることができますが、特定のタスクのためにkillallおよびpkillコマンドを調べてください。

4
Chen Levy

try kill -s 9 ps -ef |grep "Nov 11" |grep -v grep | awk '{print $2}' 11月11日のプロセスを強制終了するか、-s 9 ps -ef |grep amarok|grep -v grep | awk '{print $2}'を強制終了する

3
Victor Marrerp

バックティックで囲むか、$()の内側に置くことで、出力をサブプロセスとして評価することもできます。

`ps aux | grep -ie amarok | awk '{print "kill -9 " $2}'`

 $(ps aux | grep -ie amarok | awk '{print "kill -9 " $2}')     
3
dandrews

実行可能ファイルにコマンドを追加して、+ x許可を設定してから実行するのでしょうか。

ps aux | grep -ie amarok | awk '{print "kill -9 " $2}' > pk;chmod +x pk;./pk;rm pk
0
vova7865

Cygwinまたはkillallを含まない最小限のシェルを使用している場合は、次のスクリプトを使用できます。

killall.sh - プロセス名で強制終了する.

#/bin/bash
ps -W | grep "$1" | awk '{print $1}' | xargs kill -f;

使用法:

$ killall <process name>
0
Tony O'Hagan