此命令ps -ef | grep php
返回进程列表
我想在一个命令或shell脚本中杀死所有这些进程
谢谢
答案 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?