慎用kill -9,kill -15的作用


詳見:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt334

 

Perl語言專家Randal Schwartz在一篇短文里這樣寫:

   no no no.不要使用kill -9.

   它沒有給進程留下善后的機會:

   1) 關閉socket鏈接

   2) 清理臨時文件

   3) 將自己將要被銷毀的消息通知給子進程

   4) 重置自己的終止狀態

   等等。

   通常,應該發送15,等一兩秒鍾,如果沒效果,發送2,如果還不行,發送1。如果還不行,那你應該把那個程序刪掉,因為那個程序寫的太爛了!

   不要使用kill -9。不要用收割機來修剪花盆里的花。

   總之,在使用kill -9前,你應該先使用kill -15,給目標進程一個清理善后工作的機會。(進程也許無法捕捉或直接忽略SIGKILL信號,但它們可以,通常也是能夠捕捉SIGTERM信號的。)如果你不留機會讓進程完成清理工作,它們會留下一些不完整的文件或狀態,當系統重啟時,程序將無法理解這些狀態。

   strace/truss,ltrace和gdb都是查看一個卡住的進程因何卡住的好工具。(Solaris里的truss -u非常好用;)Solaris里還有一些非常有用的/proc相關的工具,有一些已經被移植到了Linux上。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM