【问题标题】:How to kill many instances of a process at one go?如何一次杀死一个进程的多个实例?
【发布时间】:2011-10-27 08:14:35
【问题描述】:

我有几个进程实例(即使用通用命令行)。我想一口气杀掉他们所有人。如何实现?

【问题讨论】:

标签: linux unix process system-administration


【解决方案1】:

选项:

  1. 杀死所有
  2. ps|awk|xargs 杀死
  3. 在 htop 中标记并杀死

Killall 非常强大,但我发现乱用很危险。选项 2 使用起来很尴尬,但我经常发现自己处于没有 killall 的环境中;此外,在第一遍省略 xargs 位时,我可以在挥动刀片之前查看被谴责的过程。归根结底,我通常更喜欢 htop,因为它可以让我在击中大“k”之前进行选择。

【讨论】:

  • 我可以通过 ps -ef|grep |awk '{print $2}'|xargs kill -9 来实现这一点
  • @p2pnode:啊,是的,我总是忘记包含 awk,即使我自己使用它也是如此。顺便说一句,您可以只使用 awk:ps -ef | awk '/snippet/{print$2} | xargs ...
  • @ephemient:不错!我没听说过pkill。手册页还显示了 pgrep,这将是在使用相同模式杀死进程之前检查进程的好方法。
【解决方案2】:

您可能正在寻找killall 命令。例如:

killall perl

会杀死你机器上运行的所有 perl 进程。详情请见http://linux.die.net/man/1/killall

【讨论】:

    【解决方案3】:

    killall 会为你做这件事。使用man killall 作为选项,但我通常这样做:

    killall myProgName
    

    只是非常小心(例如,首先使用ps 以确保它只会杀死你想要的东西)。

    【讨论】:

      【解决方案4】:

      注意:killall 就是答案...如果你在 Linux 上。 SysV 也有一个 killall 命令,但它做了一个非常非常不同的事情:它是关闭进程之前到系统停止的一部分。所以,是的,killall 是最简单的,但如果您经常在 Linux 和 SysV 系统之间穿梭,我可能会建议您编写一个快速脚本来执行您想要的操作。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-10-03
        • 2013-04-13
        • 1970-01-01
        相关资源
        最近更新 更多