Frequently Asked Question

What do all the process state letters in ps mean (R, S, D, T, Z)?

Linux processes are always in exactly one state, and ps and top show it as a single letter in the STAT column. R is running or runnable, either currently on a CPU or queued waiting for one. S is interruptible sleep, the most common state, where the process is blocked on a syscall (waiting for a keystroke, a socket, a timer) and can be woken either by the event or by a signal.

D is uninterruptible sleep, almost always disk or NFS I/O, the kernel refuses to wake the process even for a signal, which is why a D process can't be killed until the I/O finishes. T means stopped (paused by SIGSTOP/SIGTSTP, typically Ctrl-Z); t is stopped specifically by a debugger. Z is a zombie, a dead process not yet reaped. I is an idle kernel thread. Extra characters after the state, <, N, s, +, flag high priority, low priority (niced), session leader, and foreground-group respectively.

Further reading and video