#include <stdlib.h>
#include <sys/types.h>
#include <unistd.h>
int main ()
{
pid_t child_pid;
child_pid = fork ();
if (child_pid > 0) {
sleep (60);
}
else {
exit (0);
}
return 0;
}
上記ソースをmake_zombie.cファイルとしてオブジェクトをmake_zombieとしてコンパイル。
で、make_zombieを1回実行する毎にzombieが1人増える。
[root@TEST ~]# gcc make_zombie.c -o make_zombie [root@TEST ~]# ./make_zombie
1回実行すると、こんな感じ。
[root@TEST ~]# ps aux| grep Z USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 2706 0.0 0.0 0 0 pts/1 Z 10:12 0:00 [make_zombie]11行目のsleep(xx)←この秒数を超えるとzombieが消える。root 2708 0.0 0.1 65408 828 pts/1 R+ 10:12 0:00 grep Z [root@TEST ~]#
zombie生存時間を変える度にコンパイルし直すのはめんどいのでshellで出来るか調べたけれど無理っぽい。