如何使用 OS X 终端杀死所有同名进程

Posted

技术标签:

【中文标题】如何使用 OS X 终端杀死所有同名进程【英文标题】:How to kill all processes with the same name using OS X Terminal 【发布时间】:2014-04-15 14:21:29 【问题描述】:

通过运行得到以下输出:

ps aux | grep Python

输出:

user_name  84487   0.0  0.0        0      0   ??  Z    12:15PM   0:00.00 (Python)
user_name  84535   0.0  0.0        0      0   ??  Z    12:16PM   0:00.00 (Python)

我想终止当前在一台机器上运行的所有 Python 进程......

【问题讨论】:

【参考方案1】:

使用pkill 和-f 选项。

pkill -f python

如果您没有预装pkill(某些osx 没有...),请尝试proctools。

【讨论】:

【参考方案2】:

如果你没有pkill,你可以试试这个:

ps aux | grep python | grep -v grep | awk 'print $2'

如果这为您提供了您想要杀死的 PID,请使用类似这样的 kill 命令将其加入

kill $(ps aux | grep python | grep -v grep | awk 'print $2')

也就是说...杀死括号中的命令产生的所有 PID。

【讨论】:

这里不需要 grep:ps aux | awk '/python/ print $2' | xargs kill Glenn:这比我的回答更优雅,请继续自己提出建议并抓住要点 - 你不会冒犯我的。我会投票给你!另外,请告诉我如何使用 @ 机制引用您的姓名(其中包含一个空格)。谢谢。 我想如果你只使用“@glenn”,那会通知我。通常在评论中,您可以输入“@gl”,系统会自动提示我的名字,在这种情况下,您可以点击 Tab 完成。但是,如果您要回复之前的评论,系统会确定您要回复的对象。这一切几乎都是有效的。关于这些要点,我的代码只是对您的代码的改进,并不是一个全新的答案。 kill -9 $(ps aux | grep python | grep -v grep | awk 'print $2') 为我工作 太棒了,让我免于重启。因为我的终端中一直在产生进程,所以我收到了“fork:资源暂时不可用”的消息。我试图杀死活动监视器中的进程,但这太慢了。所以我退出了一些正在运行的程序 - Mail、Safari - 并很快切换到终端并运行 ps aux.... 命令 - BAM。 1,300 个进程被杀死!【参考方案3】:
killall python

会成功的。

【讨论】:

对我不起作用 - killall 根本没有像宣传的那样起作用,它什么也没杀死。 OS X 10.13.3【参考方案4】:

@shx2:谢谢你的技巧!以下是使其工作的步骤:

第一步:

cd /usr/bin

第二步:

touch "pkill"

第 3 步:使用您选择的 textEditor 打开您刚刚创建的文件:/usr/bin/pkill(使用 sudo 或成为管理员)。复制/粘贴并保存:

for X in `ps acx | grep -i $1 | awk 'print $1'`; do
  kill $X;
done

Step3:设置文件属性

sudo chmod 755 /usr/bin/pkill

现在您可以使用简单的语法终止任何进程:

例如,要终止所有 Python 进程,请打开一个 shell 并键入:

pkill Python

现在所有的 python 进程都应该消失了。

【讨论】:

【参考方案5】:
pgrep python | xargs sudo kill -9

【讨论】:

以上是关于如何使用 OS X 终端杀死所有同名进程的主要内容,如果未能解决你的问题,请参考以下文章

sh 如何杀死mac os x终端上的端口

mac os如何查看端口占用情况以及杀死进程?

mac os如何查看端口占用情况以及杀死进程?

mac os如何查看端口占用情况以及杀死进程?

linux下 用啥命令查看进程?如何杀死进程?

教你如何找到正在运行中的进程 ID 并杀死它