1. 程式人生 > >如何查殺stopped進程

如何查殺stopped進程

keyword ping nice tro bug clas ring tom ads

在Linux系統下面,top命令可以查看查看stopped進程。但是不能查看stopped進程的詳細信息。那麽如何查看stopped 進程,並且殺掉這些stopped進程呢?

ps -e j | grep T 

技術分享圖片

stopped進程的STAT狀態為T,一般而言,進程有下面這些狀態碼:

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

所以,可以用下面命令ps -A -ostat,ppid,pid,cmd | grep -e ‘^[T]‘ 查看stopped的進程信息,進而使用kill命令將進程完全殺死。如下所示:

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

T     6777  8635 more alert_pps.log
T     6777  9654 tail -60f alert_pps.log
T     6777 10724 top
# kill -9 8635
#  ps -A -ostat,ppid,pid,cmd | grep -e ‘^[T]‘
T     6777  9654 tail -60f alert_pps.log
T     6777 10724 top
# kill -9 9654
# kill -9 10724

如何查殺stopped進程