您的位置:首页 > 运维架构 > Linux

Linux系统的进程通常有以下几种状态:

2016-06-06 23:38 197 查看
 

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命令捕捉到
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: