一、結(jié)束方式不同
kill命令默認(rèn)發(fā)送的是SIGTERM(15)信號(hào),是一種可捕獲信號(hào),意在通知進(jìn)程需要結(jié)束,進(jìn)程可以選擇是否響應(yīng)。而kill -9發(fā)送的是SIGKILL(9)信號(hào),是一種不可捕獲信號(hào),強(qiáng)制進(jìn)程立即結(jié)束。
二、進(jìn)程響應(yīng)不同
收到kill或者kill -15的SIGTERM信號(hào)后,進(jìn)程有機(jī)會(huì)對(duì)信號(hào)進(jìn)行處理,例如釋放資源、保存狀態(tài)等,然后自我結(jié)束。但是收到kill -9的SIGKILL信號(hào)后,進(jìn)程無(wú)法進(jìn)行任何處理,立即被系統(tǒng)結(jié)束。
三、資源清理不同
使用kill或者kill -15,由于進(jìn)程能夠自我結(jié)束,因此可以在結(jié)束前清理和釋放資源。而使用kill -9,進(jìn)程被強(qiáng)制結(jié)束,可能無(wú)法清理和釋放占用的資源,可能會(huì)導(dǎo)致資源泄露。
延伸閱讀
1.kill是什么
kill是Linux中的一個(gè)命令,用于向進(jìn)程發(fā)送指定的信號(hào)。常用的信號(hào)有SIGTERM(15)和SIGKILL(9)等。
2.kill -15是什么
kill -15是向進(jìn)程發(fā)送SIGTERM(15)信號(hào)的命令。SIGTERM是一種可被捕獲、阻塞和忽略的信號(hào),當(dāng)進(jìn)程收到這個(gè)信號(hào)后,它可以進(jìn)行適當(dāng)?shù)那謇砉ぷ?,然后自我結(jié)束。
3.kill -9是什么
kill -9是向進(jìn)程發(fā)送SIGKILL(9)信號(hào)的命令。SIGKILL是一種不可被捕獲、阻塞和忽略的信號(hào),當(dāng)進(jìn)程收到這個(gè)信號(hào)后,它將立即被系統(tǒng)強(qiáng)制結(jié)束。