Linux進程狀態——top,ps中看到進程狀態D,S,Z的含義


在top和ps命令中有一列顯示進程狀態,分別有如下值:

   

含義

S

進程處於interruptable sleep狀態

D

進程處於Uninterruptable sleep狀態

R

進程處於運行狀態

Z

進程處於僵屍狀態

T

Stop模式,進程要么處於被調試狀態

   

【S進程】

進程等待某個資源處於sleep狀態,此時可以通過發送信號將這個進程喚醒。例如發送kill 信號。

   

【D進程】

進程在內核中某些不能被信號打斷,例如對某些硬件設備進行操作時刻(等待磁盤Io,等待網絡io等等)。

   

進程處於D狀態一般情況下很短暫,不應該被top或者ps看到

   

如果進程在top和ps看到長期處於D狀態,那么可能進程在等待IO時出現了問題導致進程一直等待不到IO資源,此時如果要處理掉這個D進程,那么只能重啟整個系統才會恢復。因為此時整個進程無法被kill 掉

   

【Z進程】

僵屍進程。

在Linux中,每個進程都有一個父進程,進程號叫PID(Process ID),父進程號叫PPID(Parent PID)。當進程死亡時,會關閉已經打開的文件舍棄已經占用的內存,交換空間等公共資源,然后向父進程返回一個退出狀態值,報告死訊。

如果在報告的過程中出了問題,父進程不知道子進程死了,子進程便變成了僵屍。

   

Linux中,可以通過殺死父進程的方式來讓子進程消失。但是,僵屍進程並不占用任何資源,只是錯誤顯示,如果父進程正在跑業務,千萬不可以貿然殺死父進程

   

   

   

  


免責聲明!

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



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