このブログを検索

2012/06/19

ゾンビプロセスとkillコマンド

この記事は未解決の記事です.

linuxでnaiadを使用していたら、pcが固まったのでkillコマンドでプロセスに呼びかけてあげ、再度プロセスを確認したら、以下のような表示になっていた.
$ ps alx | head -1 && ps alx | grep nstudio
F   UID   PID  PPID PRI  NI    VSZ   RSS WCHAN  STAT TTY        TIME COMMAND
0   xxx  2620  2597  20   0 149872  5556 poll_s Sl+  pts/0      0:00 nstudio
0   xxx  2622  2620  20   0 2491448 496244 poll_s Zl pts/0    15:23 nstudio-app <defunct>
defunctを調べてみたところ、どうやらゾンビプロセスということがわかった.

急ぎだったので今回はPC再起動で対処したが、その後調べてみたところ、さまざまな対処法があるようだ.以下は、もう一度ゾンビ化させてしまった(ゾンビ化させてしまわぬように)場合に試してみようと思った手順をまとめておく.
------
固まったらプロセスの確認.
$ ps alx | grep nstudio
固まったプロセスにkillコマンドでシグナルを送信.
$ kill -1 [PID]
$ kill -2 [PID]
$ kill -9 [PID]
$ kill -15 [PID]
上記コマンドもだめで、親が残っている場合は親にシグナルを送信.
$ kill -17 [PPID]
上記もだめなら親プロセスをkillする.
$ kill -1 [PPID]
$ kill -2 [PPID]
$ kill -9 [PPID]
$ kill -15 [PPID]
※ killできれば、PIDは孤児プロセスとなり、initがPIDを終了してくれるはず
それでもだめなら再起動.
$ reboot
------
killコマンドのシグナル一覧表示の仕方は-lオプションで確認できるようだ.
意外と沢山シグナルがあるが説明はmanを見ても特に記載されていなかったので、自分で調べるしかなさそうだ.
$ kill -l
 1) SIGHUP       2) SIGINT       3) SIGQUIT      4) SIGILL       5) SIGTRAP
 6) SIGABRT      7) SIGBUS       8) SIGFPE       9) SIGKILL     10) SIGUSR1
11) SIGSEGV     12) SIGUSR2     13) SIGPIPE     14) SIGALRM     15) SIGTERM
16) SIGSTKFLT   17) SIGCHLD     18) SIGCONT     19) SIGSTOP     20) SIGTSTP
21) SIGTTIN     22) SIGTTOU     23) SIGURG      24) SIGXCPU     25) SIGXFSZ
26) SIGVTALRM   27) SIGPROF     28) SIGWINCH    29) SIGIO       30) SIGPWR
31) SIGSYS      34) SIGRTMIN    35) SIGRTMIN+1  36) SIGRTMIN+2  37) SIGRTMIN+3
38) SIGRTMIN+4  39) SIGRTMIN+5  40) SIGRTMIN+6  41) SIGRTMIN+7  42) SIGRTMIN+8
43) SIGRTMIN+9  44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13
48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12
53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9  56) SIGRTMAX-8  57) SIGRTMAX-7
58) SIGRTMAX-6  59) SIGRTMAX-5  60) SIGRTMAX-4  61) SIGRTMAX-3  62) SIGRTMAX-2
63) SIGRTMAX-1  64) SIGRTMAX
参考:
プロセスおよびジョブを強制終了する - ITpro
プロセス (終了状態) - wikipedia
子プロセス (孤児プロセス) - wikipedia
シグナル(ソフトウェア) - wikipedia

0 件のコメント:

コメントを投稿