杀死进程SHELL

时间:2012-09-16 08:03:20

标签: shell unix process kill

此命令ps -ef | grep php返回进程列表

我想在一个命令或shell脚本中杀死所有这些进程

谢谢

5 个答案:

答案 0 :(得分:3)

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

killall php

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

强行杀死他们
killall -9 php

答案 1 :(得分:2)

执行此操作的常规方法是使用xargs中的ps -ef | grep php | xargs kill,但有几种方法可以执行此操作。

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

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

    杀死`pgrep php`

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

希望这有帮助。

答案 2 :(得分:1)

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

kill -9 <pid you found>

答案 3 :(得分:1)

使用xargs

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

grep -v grep排除命令本身,awk给出PID的列表,然后传递kill命令。

答案 4 :(得分:0)

使用pkill php。有关此主题的更多相关问题:How can I kill a process by name instead of PID?