Linux进程状态——top,ps中看到进程状态D,S,Z的含义

在top和ps命令中有一列显示进程状态,分别有如下值:

   

含义

S

进程处于interruptable sleep状态

D

进程处于Uninterruptable sleep状态

R

进程处于运行状态

Z

进程处于僵尸状态

T

Stop模式,进程要么处于被调试状态

   

【S进程】

进程等待某个资源处于sleep状态,此时可以通过发送信号将这个进程唤醒。例如发送kill 信号。

   

【D进程】

进程在内核中某些不能被信号打断,例如对某些硬件设备进行操作时刻(等待磁盘Io,等待网络io等等)。

   

进程处于D状态一般情况下很短暂,不应该被top或者ps看到

   

如果进程在top和ps看到长期处于D状态,那么可能进程在等待IO时出现了问题导致进程一直等待不到IO资源,此时如果要处理掉这个D进程,那么只能重启整个系统才会恢复。因为此时整个进程无法被kill 掉

   

【Z进程】

僵尸进程。

在Linux中,每个进程都有一个父进程,进程号叫PID(Process ID),父进程号叫PPID(Parent PID)。当进程死亡时,会关闭已经打开的文件舍弃已经占用的内存,交换空间等公共资源,然后向父进程返回一个退出状态值,报告死讯。

如果在报告的过程中出了问题,父进程不知道子进程死了,子进程便变成了僵尸。

   

Linux中,可以通过杀死父进程的方式来让子进程消失。但是,僵尸进程并不占用任何资源,只是错误显示,如果父进程正在跑业务,千万不可以贸然杀死父进程

   

   

   

  

posted @ 2019-07-26 22:00  流年的夏天  阅读(17177)  评论(0编辑  收藏  举报