linuxでnaiadを使用していたら、pcが固まったのでkillコマンドでプロセスに呼びかけてあげ、再度プロセスを確認したら、以下のような表示になっていた.
$ ps alx | head -1 && ps alx | grep nstudiodefunctを調べてみたところ、どうやらゾンビプロセスということがわかった.
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>
急ぎだったので今回は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 件のコメント:
コメントを投稿