R(TASK_RUNNING),可執行狀態。
只有在該狀態的進程才可能在CPU上運行,同一時刻可能有多個進程處於可執行狀態。
S(TASK_INTERRUPTIBLE),可中斷的睡眠狀態。
處於這個狀態的進程因為等待某事件的發生(比如等待socket連接、等待信號量),而被掛起。當這些事件發生時,對應的等待隊列中的一個或多個進程將被喚醒。一般情況下,進程列表中的絕大多數進程都處於TASK_INTERRUPTIBLE狀態。
D(TASK_UNINTERRUPTIBLE),不可中斷的睡眠狀態。
與TASK_INTERRUPTIBLE狀態類似,進程處於睡眠狀態,但是此刻進程是不可中斷的。不可中斷,指的是進程不響應異步信號,無法用kill命令關閉處於TASK_UNINTERRUPTIBLE狀態的進程。
T(TASK_STOPPED or TASK_TRACED),暫停狀態或跟蹤狀態。
向進程發送一個SIGSTOP信號,它就會因響應該信號而進入TASK_STOPPED狀態(除非該進程本身處於TASK_UNINTERRUPTIBLE狀態而不響應信號)。當進程正在被跟蹤時,它處於TASK_TRACED狀態。
Z(TASK_DEAD - EXIT_ZOMBIE),退出狀態。
進程在退出的過程中,處於TASK_DEAD狀態,如果它的父進程沒有收到SIGCHLD信號,故未調用wait(如wait4、waitid)處理函數等待子進程結束,又沒有顯式忽略該信號,它就一直保持EXIT_ZOMBIE狀態。只要父進程不退出,這個EXIT_ZOMBIE狀態的子進程就一直存在。
X(TASK_DEAD - EXIT_DEAD),退出狀態,進程即將被銷毀。
EXIT_DEAD狀態是非常短暫的,幾乎不可能通過ps命令捕捉到