NEW Created READY In run queue RUNNING On CPU SLEEPING Waiting I/O STOPPED SIGSTOP/SIGTSTP ZOMBIE exit() called DEAD Reaped fork() scheduled I/O wait wakeup SIGSTOP SIGCONT exit() wait()
Created / Scheduled
Running on CPU
Sleeping (I/O wait)
Stopped (signal)
Zombie (exited, not reaped)
Dead (fully cleaned up)

How a Linux Process Lives and Dies

Every process in Linux follows the same lifecycle: it is created by a parent process using fork(), optionally replaced with a new program via exec(), runs until it calls exit(), and becomes a zombie until the parent reads its exit status with wait(). Click the steps above to explore each stage.

Stateps STATDescriptionKey Syscall
RunningRActively using CPU or in the run queueexec()
Sleeping (Interruptible)SWaiting for I/O, timer, or signalread(), sleep()
Sleeping (Uninterruptible)DWaiting for disk I/O (cannot be killed)Kernel I/O
StoppedTPaused by SIGSTOP or SIGTSTP (Ctrl+Z)kill -STOP
ZombieZExited but parent has not called wait()exit()
DeadXFully removed from process tablewait()