The Real Reason to Not Use SIGKILL

在 Linux 中,通常可以发送一些信号来杀死一个进程,一般用来杀死进程的信号有 SIGTERM、 SIGKILL。但是,如果希望进程合理地终止,就不要发送硬中断信号 SIGKILL,因为该信号是不能拦截的,进程接到该信号之后会马上退出,并没有机会进行现场清理——这包括对线程的关闭等操作。更好的做法是,发送 SIGTERM 信号,这样进程在接到该信号后,可以做一些退出的准备工作。

或许你之前对如何杀死进程并没有感到什么不同,但是,看了这幅漫画,你不觉得那些孩子们(线程)很可怜么——虽然 温和的 SIGTERM 也是要全家干掉的。哭~


via: http://turnoff.us/geek/dont-sigkill/

作者:Daniel Stori 译者&校对&点评:wxy 合成:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

已有 6 条评论

  1. reaper 不应该是 sysadmin,应该是 kernel 才对吧。 —— 来自四川成都的 Chrome 59.0|GNU/Linux 用户 发表。
  2. 而且我觉得它的孩子们,在图上描写的更应该是进程,而不是线程。如果是线程的话,那都应该被 KILL 才是。 —— 来自四川成都的 Chrome 59.0|GNU/Linux 用户 发表。
  3. 没有注意到图右下角,小企鹅头上的光环。 —— 来自四川成都的 Chrome 59.0|GNU/Linux 用户 发表。
  4. 我都是用SIGINT的,如果不起作用在SIGKILL —— 来自上海的 Chrome 60.0|GNU/Linux 用户 发表。
  5. 好可怜,我以后不敢用 kill 了 —— 来自北京的 Chromium 60.0|Ubuntu 用户 发表。
  6. 还以为是命令……原来是开发者技巧啊。 —— 文剑一飞 [Chrome 61.0|Windows 10] 发表。

添加新评论