zombieプロセスは殺せないのね
先生と今日やったテストの話をしていたら、zombieプロセスはkillコマンドで殺せないと言われて、ショックを受けたので実験してみた。以下のプログラムを動かして、zonbieプロセスを作成。
#include<stdio.h> #include<sys/types.h> #include<unistd.h> int main() { pid_t pid; pid = fork(); if( pid == 0 ) { printf("child return"); return 0; } for(;;) {} return 0; }
実行結果
$ ./a.out $ ps PID TTY TIME CMD 828 pts/9 00:00:00 zsh 1851 pts/9 00:07:49 a.out 1852 pts/9 00:00:00 a.out <defunct> 2124 pts/9 00:00:00 ps
1852に対して、killしてもkill -9しても確かに死なないわ。うわー。そういえば、授業中にzombieプロセスを作る実験をしてみてと言ってたなあ〜。ちゃんとやらないとだめですね。