kill不掉的程序

2021-06-09 03:29:37 字數 391 閱讀 6967

通常有兩種情況是不能kill掉的:

一是程序已經成為僵死程序,當它的父程序將它**或將它的父程序kill掉即可在ps輸出看不到了;

二是程序正處在核心狀態中,linux程序執行時分核心和使用者兩種狀態,當程序進入核心狀態後,會遮蔽所有訊號,包括sigkil,所以這個時候kill -9也變得無效了。

看看是不是僵死程序(使用「ps」命令返回「defunct」的程序)

如果是的 沒有kill掉也很正常,不占用系統資源。

另外:該程序處於"kernel mode"(核心態)且在等待不可獲得的資源。處於核心態的程序忽略所有訊號處理,因此對於這些一直處於核心態的程序只能通過重啟系統實現。程序在unix/linux中會處於兩種狀態,即使用者態和核心態。只有處於使用者態的程序才可以用「kill」命令將其終止。

Linux程序KILL不掉的原因

做過linux開發的人通常遇到過乙個程序不能kill掉的情況,即使使用的是kill 9方式,而一般的教課書都只說kill 9能殺死任何程序,遇到這種情況時就會感覺到很矛盾,其它這也是正常的,通常有兩種情況是不能kill掉的 一是程序已經成為僵死程序,當它的父程序將它 或將它的父程序kill掉即可在p...

kill 9 殺不掉程序

kill 9 傳送sigkill訊號給程序,將其終止,但對於以下兩種情況不適用 1.該程序是殭屍程序 stat z 此時程序已經釋放所有的資源,但是沒有被父程序釋放。殭屍程序要等到父程序結束,或者重啟系統才可以被釋放。2.程序處於 核心態 並且在等待不可獲得的資源,處於 核心態 的資源預設忽略所有訊...

kill程序 使用kill指令碼殺死頑固程序

毛驢經常在執行tomcat的shutdown.sh時,發現tomcat竟然不聽話,明明已經顯示過熟悉的關閉提示,後台仍然在苟延殘喘的跑著乙個程序,不得不動用kill的方式再殺一次。毛驢表示這種方式欺人太甚,敬酒不吃吃罰酒,對於賴著不走的程序,就得採用非常手段。於是,毛驢迅速用驢蹄敲下如下指令碼,對於...