2012-09-16 237 views

回答

2

杀死具有给定名称的所有命令的最简单方法是使用killall

killall php 

注意,这只是发送一个中断信号。如果进程正在运行,这应该足够了。如果他们不从快死了,你可以使用

killall -9 php 
1

你可以找到它的PID(它是在第一列ps打印),并使用kill命令强制杀死它:

kill -9 <pid you found> 
1

使用xargs

ps -ef | grep php | grep -v grep | awk '{print $2}' | xargs kill -9 

grep -v grep是排除命令本身和awk给出了PID列表随后传递kill命令。

+0

避免'ps | grep php | grep -v grep'是'ps | grep'[p] hp'' –

+0

@glennjackman我知道'killall'更好。但是按名称杀死与杀死所有具有'php'的进程不同。 –

2

正常的方式做,这是使用xargs作为ps -ef | grep php | xargs kill强行杀死他们,但有几个方法可以做到这一点。

  • ps -ef列出所有进程,然后你用grep挑选提及“PHP”几行。这意味着命令行中包含“php”的命令也会匹配并被杀死。如果你真的想要匹配命令(而不是参数),最好使用pgrep php

  • 您可以使用shell反引号提供一个命令,另一个命令的参数的输出,如

    杀`p纤ep php`

  • 如果你想只杀死进程,则命令pkill将模式与命令匹配。如果您想要对流程执行其他操作,则无法使用此功能。这意味着如果要杀死命令包含“php”的所有进程,可以使用pkill php来执行此操作。

希望这会有所帮助。