此命令ps -ef | grep php
返回进程列表
我想用一个命令或一个 shell 脚本杀死所有这些进程
谢谢
杀死具有给定名称的所有命令的最简单方法是使用killall
:
killall php
注意,这只发送一个中断信号。如果进程正常运行,这应该足够了。如果他们没有因此而死,你可以使用强行杀死他们
killall -9 php
执行此操作的正常方法是使用xargs
as in ps -ef | grep php | xargs kill
,但有几种方法可以执行此操作。
ps -ef
列出所有进程,然后你grep
用来挑选几行提到“php”的行。这意味着在命令行中包含“php”的命令也将匹配并被杀死。如果您真的想匹配命令(而不是参数),最好使用pgrep php
.
您可以使用 shell 反引号将命令的输出作为参数提供给另一个命令,如
杀死`pgrep php`
如果您只想终止进程,则有一个命令pkill
将模式与命令匹配。但是,如果您想对流程执行其他操作,则不能使用此选项。这意味着如果你想杀死命令包含“php”的所有进程,你可以使用pkill php
.
希望这可以帮助。
你可以找到它的pid(它在第一列ps
打印)并使用kill
命令强行杀死它:
kill -9 <pid you found>
使用xargs
:
ps -ef | grep php | grep -v grep | awk '{print $2}' | xargs kill -9
grep -v grep
是排除命令本身并awk
给出随后通过kill
命令的 PID 列表。
使用pkill php
. 更多关于这个主题的类似问题:如何通过名称而不是 PID 终止进程?