3

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

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

谢谢

4

5 回答 5

3

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

killall php

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

killall -9 php
于 2012-09-16T08:08:57.240 回答
2

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

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

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

    杀死`pgrep php`

  • 如果您只想终止进程,则有一个命令pkill将模式与命令匹配。但是,如果您想对流程执行其他操作,则不能使用此选项。这意味着如果你想杀死命令包含“php”的所有进程,你可以使用pkill php.

希望这可以帮助。

于 2012-09-16T08:17:52.910 回答
1

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

kill -9 <pid you found>
于 2012-09-16T08:05:47.973 回答
1

使用xargs

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

grep -v grep是排除命令本身并awk给出随后通过kill命令的 PID 列表。

于 2012-09-16T08:06:35.150 回答
0

使用pkill php. 更多关于这个主题的类似问题:如何通过名称而不是 PID 终止进程?

于 2012-09-16T08:05:59.847 回答