如何杀死与名称匹配的所有进程?

假设我想杀死所有包含amarok这个词的进程。我可以打印出我想要执行的命令。但是我如何让shell执行它们呢。ie。

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
304529 次浏览
ps aux | grep -ie amarok | awk '{print $2}' | xargs kill -9

Xargs (1): Xargs——构造参数列表和执行实用程序。当你想要将参数管道到诸如killls等时,这很有用。

使用pgrep

kill -9 $(pgrep amarok)

如果你想执行一个命令的输出,你可以把它放在$(...)中,但是对于你的特定任务,看看killallpkill命令。

你也可以把输出作为子进程来计算,方法是把所有输出都用反勾号括起来,或者把它放在$()里面:

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


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

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选项将它们全部杀死:

pkill -f httpd
我认为这个命令killall正是你所需要的。 该命令被描述为“按名称杀死进程”。它很容易使用。例如< / p >
killall chrome

该命令将关闭Chrome所有进程。这里有一个关于killall命令的链接

http://linux.about.com/library/cmd/blcmdl1_killall.htm < a href = " http://linux.about.com/library/cmd/blcmdl1_killall.htm " > < / >

希望这个命令能帮助到你。

安全的做法是:

pkill -f amarok

Pkill -x与进程名完全匹配。

pkill -x amarok

Pkill -f类似,但允许使用正则表达式模式。

请注意,不带其他参数(例如-x, -f)的pkill将允许对进程名进行部分匹配。所以"pkill amarok"会杀死amarok, amarokBanana, bananaamarok等等。

我希望-x是默认行为!

try kill -s 9 `ps -ef |grep "Nov 11" |grep -v grep | awk '{print $2}'` 关闭11月11日的进程 或 kill -s 9 `ps -ef |grep amarok|grep -v grep | awk '{print $2}'` 终止包含单词amarok

的进程

也许添加命令到可执行文件,设置+x权限,然后执行?

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

如果你正在使用cygwin或一些缺少killall的最小shell,你可以使用这个脚本:

Kill .sh -按进程名进行Kill。

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

用法:

$ killall <process name>