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

marshalzxy發表於2018-11-15

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

含義 備註
S 程式處於interruptable sleep狀態 na
D 程式處於Uninterruptable sleep狀態 na
R 程式處於執行狀態 na
Z 程式處於殭屍狀態 na
T Stop模式,程式要麼處於被除錯狀態 na

interruptable sleep vs uninterruptable sleep

  • interruptable sleep
    程式等待某個資源處於sleep狀態,此時可以通過傳送訊號將這個程式喚醒。例如傳送kill 訊號。
  • uninterruptable sleep
    程式在核心中某些不能被訊號打斷,例如對某些硬體裝置進行操作時刻(等待磁碟Io,等待網路io等等)。程式處於D狀態一般情況下很短暫,不應該被top或者ps看到。如果程式在top和ps看到長期處於D狀態,那麼可能程式在等待IO時出現了問題導致程式一直等待不到IO資源 此時如果要處理掉這個D程式,那麼只能重啟整個系統才會恢復。因為此時整個程式無法被kill 掉。


相關文章