如何在 Linux 上按名称而不是 PID 杀死进程?

新手上路,请多包涵

有时当我尝试启动 Firefox 时,它会显示“Firefox 进程已在运行”。所以我必须这样做:

 jeremy@jeremy-desktop:~$ ps aux | grep firefox
jeremy    7451 25.0 27.4 170536 65680 ?        Sl   22:39   1:18 /usr/lib/firefox-3.0.1/firefox
jeremy    7578  0.0  0.3   3004   768 pts/0    S+   22:44   0:00 grep firefox
jeremy@jeremy-desktop:~$ kill 7451

我想要的是一个可以为我做所有这些的命令。它需要一个输入字符串和 grep 在进程列表中的它(或其他),并会杀死输出中的所有进程:

 jeremy@jeremy-desktop:~$ killbyname firefox

我尝试在 PHP 中执行此操作,但 exec('ps aux') 似乎只显示在 PHP 脚本本身中使用 exec() 执行的进程(所以它显示的唯一进程就是它自己。)

原文由 Paige Ruten 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 604
2 个回答

也可以使用:

 pkill -f "Process name"

对我来说,它完美无缺。这是我一直在寻找的。 pkill 不适用于没有标志的名称。

当设置了 -f 时,完整的命令行用于模式匹配。

原文由 Victor 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题