天问

Linux进程的几种状态

进程有下面这些状态码:

D    uninterruptible sleep (usually IO)

I    Idle kernel thread

R    running or runnable (on run queue)

S    interruptible sleep (waiting for an event to complete)

T    stopped by job control signal

t    stopped by debugger during the tracing

W    paging (not valid since the 2.6.xx kernel)

X    dead (should never be seen)

Z    defunct ("zombie") process, terminated but not reaped by  its parent for BSD formats and when the stat keyword is used, additional

rs may be displayed:

<    high-priority (not nice to other users)

N    low-priority (nice to other users)

L    has pages locked into memory (for real-time and custom IO)

s    is a session leader

l    is multi-threaded (using CLONE_THREAD, like NPTL pthreads do)

+    is in the foreground process group

上面看起来了太烦,总结一下。一般较常见的是5种状态码:

  • D 不可中断 uninterruptible sleep (usually IO)

  • R 运行 runnable (on run queue)

  • S 中断 sleeping

  • T 停止 traced or stopped

  • Z 僵死 a defunct (”zombie”) process

 

所以,可以用下面命令,查看stopped的进程信息。如下所示:

ps -A -ostat,ppid,pid,cmd | grep -e '^[T]'

 

在Linux系统下面,top命令可以查看查看stopped进程。但是不能查看stopped进程的详细信息。那么如何查看stopped 进程,并且杀掉这些stopped进程呢?

ps -e j | grep T

stopped进程的STAT状态为T,找到pid,执行kill pid 即可杀死stopped进程。

博客地址:http://blog.yoqi.me/?p=13429
扫我捐助哦
喜欢 1

这篇文章还没有评论

发表评论