在top和ps命令中有一列顯示進(jìn)程狀態(tài),分別有如下值
| 值 | 含義 | 備注 |
|---|---|---|
| S | 進(jìn)程處于interruptable sleep狀態(tài) | na |
| D | 進(jìn)程處于Uninterruptable sleep狀態(tài) | na |
| R | 進(jìn)程處于運(yùn)行狀態(tài) | na |
| Z | 進(jìn)程處于僵尸狀態(tài) | na |
| T | Stop模式,進(jìn)程要么處于被調(diào)試狀態(tài) | na |
interruptable sleep vs uninterruptable sleep
- interruptable sleep
進(jìn)程等待某個(gè)資源處于sleep狀態(tài),此時(shí)可以通過(guò)發(fā)送信號(hào)將這個(gè)進(jìn)程喚醒。例如發(fā)送kill 信號(hào)。 - uninterruptable sleep
進(jìn)程在內(nèi)核中某些不能被信號(hào)打斷,例如對(duì)某些硬件設(shè)備進(jìn)行操作時(shí)刻(等待磁盤(pán)Io,等待網(wǎng)絡(luò)io等等)。進(jìn)程處于D狀態(tài)一般情況下很短暫,不應(yīng)該被top或者ps看到。如果進(jìn)程在top和ps看到長(zhǎng)期處于D狀態(tài),那么可能進(jìn)程在等待IO時(shí)出現(xiàn)了問(wèn)題導(dǎo)致進(jìn)程一直等待不到IO資源 此時(shí)如果要處理掉這個(gè)D進(jìn)程,那么只能重啟整個(gè)系統(tǒng)才會(huì)恢復(fù)。因?yàn)榇藭r(shí)整個(gè)進(jìn)程無(wú)法被kill 掉。