Linux程序狀態——top,ps中看到程序狀態D,S的含義
摘要:
在top和ps命令中有一列顯示程序狀態,分別有如下值
值
含義
備註
S
程序處於i...
在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 掉。