如何在MacOS中终止进程?


77

我尝试过,kill -9 698但过程并未失败。

$ ps -ef | grep chromium
  502   698   811   0   0:01.24 ??         0:07.28 /Users/lucius/chromium/src/xcodebuild/Debug/Chromium.app/Contents/MacOS/Chromium
  502   854   732   0   0:00.00 ttys001    0:00.00 grep chromium
$ kill -9 698


$ ps -ef | grep chromium
  502   698   811   0   0:01.24 ??         0:07.28 /Users/lucius/chromium/src/xcodebuild/Debug/Chromium.app/Contents/MacOS/Chromium
  502   854   732   0   0:00.00 ttys001    0:00.00 grep chromium

1
首先执行是一个好习惯吗?如果那不起作用,kill -15 ...然后kill -1 ...又不起作用kill -9 ...呢?
蜡翼'18

Answers:


127

如果您要取消-9,则您具有正确的PID,并且什么也没有发生,那么您就没有取消该进程的权限。

解:

$ sudo kill -9 PID

好的,请确保足够多的Mac OS / X确实针对这种情况给出了错误消息:

$ kill -9 196
-bash: kill: (196) - Operation not permitted

因此,如果没有收到错误消息,则可能是由于某种原因而没有获得正确的PID。


可能是正确的,但我似乎还记得如果进程不是由杀手所有的话,kill会给出错误消息。
paxdiablo,

天哪,这是UNIX与UNIX不同的行为之一。最好不要出现该错误,因为它是一个秘密通道。另一方面,这是一条有用的错误消息。
查理·马丁

哪个UNIX在这里没有错误?我已经测试了BSD,Linux和Solaris,并且都给出了上述错误(EPERM)的某种形式。
罗布·纳皮尔

我不知道,尽管如果我必须猜测,我猜想Solaris带有受信任的扩展(秘密通道问题)。另外,请注意,杀死之后还有几行空白行。我想知道为什么?
查理·马丁

14

在某些情况下,您可能希望终止在特定端口中运行的所有进程。例如,如果我在3000端口上运行一个节点应用程序,而我想杀死它并启动一个新的应用程序;然后我发现此命令很有用。

查找在TCP端口3000上运行的进程ID并杀死它

kill -9 `lsof -i TCP:3000 | awk '/LISTEN/{print $2}'`

到底需要什么
Humoyun Ahmad

6

如果您知道进程名称,则可以使用:

killall Dock

如果不这样做,则可以打开“活动监视器”并找到它。


我认为实际运行该命令可能不是一个好主意。我想您可以很容易地重新启动扩展坞,但是我不知道这种方法是否会出现任何问题。
克里斯·卢兹

这只是一个过程的例子,我不想他杀死码头。我假设killall采用与kill不同的字符串。
加勒特

3

给定程序的路径,我假设您当前正在Xcode下运行此程序,并且可能在调试断点处。由于存在断点,因此无法在这种状态下终止进程。

第一步是转到您的Xcode进程并停止调试。如果由于某种奇怪的原因而失去了对Xcode的访问权(也许Xcode失去了对其gdb子进程的访问权),那么解决方案是杀死gdb进程。更一般地,这里的解决方案是杀死父进程。在您的情况下,这是PID 811(第三列)。

在这种情况下,无需使用-9。


3

我只是在类似的情况下才搜索此内容,而不是kill -9 698尝试sudo kill 428在428是我要杀死的进程的pid的地方。在没有连字符“-”的情况下,它对我来说干净利落。希望对您有所帮助!


是的,尝试sudo kill -9 PID-这对我有用(idk为什么我们不能从用户那里杀死它并需要提升)
Rob

2

如果kill -9不起作用,那么两者都不起作用killall(甚至killall -9更“强烈”)。显然,铬的处理过程被卡在一个不间断的系统调用中(即,在内核中,而不是在用户区中)-认为MacOSX还没有剩下任何这些,但是我想总会有另外一个:-(。进程具有控制终端,您可能可以将其设置为后台,并在后台运行时将其杀死;否则(或者(如果即使该进程已失效,则即使执行强力杀死也不起作用))我也没主意,我认为您可能需要重新启动:-(。


2

我已经体验到,如果kill -9 PID不起作用并且您拥有该过程,那么可以使用kill -s kill PID它,正如手册页所说的那样,这令人惊讶kill -signal_number PID


kill -s kill 9帮助了我
boraas 2015年

0

我最近遇到了类似的问题,即原子编辑器无法关闭。都没有回应。杀死/杀死-9 /从活动监视器强制退出-无效。最终不得不重启我的Mac以关闭该应用程序。


0

在聚光灯下,搜索“活动监视器”。您可以从此处强制完全删除任何应用程序。

在此处输入图片说明

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.