在系统监视器中,杀死进程和结束进程有什么区别?

在系统监视器中,杀死进程和结束进程有什么区别?

当我想通过系统监视器终止某个进程时,我有两种快捷方式,终止进程和结束进程。这两者有什么区别?

答案1

我也很好奇,所以我浏览了源代码,发现了下面的内容应用程序.cpp。此代码还有更多内容,但我认为这些与选项相关,至少对于系统监视器 3.8.2.1 到 3.19.3 而言:

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

Quora 上有关 SIGINT、SIGTERM、SIGKILL 和 SIGSTOP 信号的问题对所有 kill/quit/shutdown 信号及其区别进行很好的解释。

源代码突出显示

答案2

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

通常,仅当您无法按照结束进程中所述正常结束进程时,才可以终止该进程。

从技术层面上看,这让我认为 End Process 会发送 SIGQUIT,这允许进程捕获并在需要时执行清理,但如果失败,Kill Process 应该发送 SIGKILL,这将暴力终止进程,而没有恢复的机会。谨慎使用!

相关内容