【问题标题】:Kill a process if it exists如果存在就杀死一个进程
【发布时间】:2013-06-07 14:27:21
【问题描述】:

我想杀死所有正在运行的仪器进程。我正在使用这个:

sudo killall instruments

我在脚本中使用它,有时进程没有运行,它会停止我的脚本,说没有同名的进程正在运行。

如何检查特定进程是否正在运行?就我而言是乐器。

【问题讨论】:

  • ps -ax|grep instruments|grep -v grep|wc -l 将非零,如果有一个进程名称中带有instruments

标签: bash shell kill-process


【解决方案1】:

如果您的脚本正在终止,您很可能启用了set -e,以便在命令失败时退出。

如果你不关心状态,你可以在命令后面附加|| true

sudo killall instruments || true

【讨论】:

    【解决方案2】:

    您可以使用pgrep <proc> 搜索名为<proc> 的进程

    如果 pgrep 工具 &> /dev/null ;然后 sudo killall 仪器;菲

    【讨论】:

    • 如果你使用pgrep,不妨使用pkill
    • @glennjackman 当然,谢谢!我刚刚展示了如何搜索一个进程,以他的名字 killall 杀死一个进程就足够了,并且 OP 知道这一点。
    【解决方案3】:
    sudo killall instruments 2>/dev/null
    

    还不够吗?

    【讨论】:

    • "killall" 非常有用 =)
    猜你喜欢
    • 2010-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-30
    • 2011-07-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多