Hi. Saya mengalami masalah dengan fork dan $SIG{CHLD} di perl. Misalnya kode di bawah: === #!/usr/bin/perl -w $SIG{CHLD} = sub { print "$$: ", wait, " is dead.\n" }; for (;;) { my $pid; if (defined ($pid=fork)) { if ($pid) # parent { print "$$: Forked a child (pid=$pid).\n"; sleep 2; } else # child { print "$$: Hi, I'm a child & I'll die soon.\n"; sleep 1+int(4*rand); exit; } } } === Meskipun saya melakukan wait() di handler yang dipasang di $SIG{CHLD}, tetap saja terbentuk zombie (lihat `ps ax`) yang, setelah terakumulasi cukup banyak, mengakibatkan proses induk tidak bisa fork lagi. Bila dilihat, ternyata tidak setiap proses anak menghasilkan signal SIGCHLD yang berhasil di-trap oleh handler. Zombie tidak terbentuk jika $SIG{CHLD} saya assign 'IGNORE'. Ada yang pernah mengalaminya? Emang ini gara2 signal di Perl yang ngga reliable itu ya? RH6.0/Linux 2.2.5/glibc 2.1.1 --sh -------------------------------------------------------------------------------- Utk berhenti langganan, kirim email ke [EMAIL PROTECTED] Informasi arsip di http://www.linux.or.id/milis.php3 Pengelola dapat dihubungi lewat [EMAIL PROTECTED] Hosted by http://www.Indoglobal.com