在系统监视器中,Kill Process和End Process有什么区别?

当我想通过系统监视器杀死进程时,我会看到2种快速方法,Kill Process和End Process。 这两者有什么区别?

根据系统监视器手册,您通常应使用“结束进程”,并且只有在失败时才使用“终止进程”:

只有在无法正常结束流程时才会终止流程,如“结束流程”中所述。

在技​​术层面上,这让我认为End Process发送了一个SIGQUIT,它允许进程在需要时捕获并执行清理,但是如果失败,Kill Process应该发送一个SIGKILL,它应该猛烈地终止进程,而不会恢复。 谨慎使用!

我也很好奇,所以我只浏览了源代码并在application.cpp中找到了以下内容。 这段代码还有更多,但我认为这些与选项相关,至少对于System Monitor 3.8.2.1到3.19.3:

  • 停止进程= SIGSTOP暂停信号 ,让你以后用SIGCONT继续,不杀死进程)
  • 结束进程= SIGTERM终止信号 ,正确的方式,应用程序可以拦截此信号并启动关闭任务,如临时文件清理)
  • 杀死进程= SIGKILL杀死信号 ,极端,仅在SIGTERM不起作用时才使用,不会启动关机任务)

有关SIGINT,SIGTERM,SIGKILL和SIGSTOP信号的Quora请参阅此问题,以获得有关所有kill / quit / shutdown信号及其差异的详细说明。

源代码突出显示