Macterminal killall命令是退出还是强制退出?

Does Mac terminal killall command quit or force quit?

kill 和 killall 命令的具体作用是什么?我意识到他们终止了一个应用程序或进程,但是他们中的任何一个都这样做了 cleanly/safely,就像 UI 中的 "Quit" 那样吗?或者他们更像 "Force Quit"?

谢谢!

(macOS 10.13.4 High Sierra)

kill命令是一个向进程发送信号的UNIX命令(macOS是UNIX的变种)。有许多不同的信号可以发送到进程。信号已定义名称和数字代码。

如果您不指定信号,将使用默认值,即 TERM (15) 信号。 TERM 信号的规范旨在为所寻址的进程提供正常关闭的机会,即。 e.在终止之前做一些清理工作。

例子(都是等价的):

kill <pid>
kill -15 <pid>
kill -TERM <pid>
kill -s TERM <pid>

一个更有力的信号是 KILL (9) 信号,它强制进程立即终止。

示例:

kill -9 <pid>
kill -KILL <pid>
kill -s KILL <pid>

有关更多信息和完整的信号列表,运行 man kill

使用 kill 您必须通过进程 ID 指定目标进程。 killall 命令的作用基本相同,主要区别在于它允许您通过名称指定目标进程。有关详细信息,请参阅 man killall