任何人都可以解释kill和kill -9之间的区别。 提前谢谢。
答案 0 :(得分:4)
kill
又名kill -TERM
又称kill -15
是终止流程的安全而正确的方法。它相当于安全地关闭计算机。
kill -9
是残忍地谋杀一个进程的不安全方式。它相当于拔电源线,可能会导致数据损坏。
有关详细信息,请参阅the Linux&Unix stack exchange。
答案 1 :(得分:0)
Kill和Kill -9都用于杀死进程。但是,在收到Kill或Kill -9的过程的行为方式上可以看到差异。
Kill将生成SIGTERM信号,要求一个进程优雅地杀死自己,即释放内存或照顾其他子进程。使用kill杀死进程不会有任何副作用,例如未释放的内存,因为它被优雅地杀死了。
Kill -9的工作原理类似,但它不等待程序正常退出。 Kill -9生成一个SIGKILL信号,该信号将不检查进程的状态并立即终止该进程。
在编码/编程环境中
SIGTERM(由Kill生成)可以在代码级别捕获和处理,如果该过程仍要达到安全状态(清除内存或类似活动),并且该过程可能不会立即被杀死,则需要一些时间来清除资源然后消失。
鉴于
进程不能忽略SIGKILL(由Kill -9生成),并且无论它们处于何种状态都将立即被杀死(这可能会引起一些问题,但是可以肯定地杀死了进程)。实际上,由于该信号直接进入内核初始化,因此进程甚至没有意识到SIGKILL信号。此时,init将停止该过程。该过程永远没有机会捕捉信号并采取行动。