SUPERVISOR.PL ------------- print PIDFILE "$$\r\n"; $SIG{QUIT} = \%SHUTDOWN; fork() if child, exec ctrlman.pl fork() if child, exec pidman.pl fork() if child, exec progman.pl fork() if child, exec webman.pl while (1) { do stuff } exit; sub SHUTDOWN { kill 3, CTRLMAN_pid # pid saved from the fork kill 3, PIDMAN_pid kill 3, PROGMAN_pid kill 3, WEBMAN_pid } #### 19:28:39:982 SUPERVISOR: Shutdown started^M 19:28:39:983 SUPERVISOR: Killing Ctrlman Pidman Progman Webman^M 19:28:39:983 SUPERVISOR: Waiting for processes to die^M 19:28:39:984 CTRLMAN: Shutdown started^M 19:28:39:985 CTRLMAN: Shutdown complete^M 19:28:39:990 PIDMAN: Shutdown started^M 19:28:39:991 PIDMAN: Shutdown complete^M 19:28:39:994 PROGMAN: Shutdown started^M 19:28:39:995 PROGMAN: Shutdown complete^M 19:28:39:997 WEBMAN: Shutdown started^M 19:28:39:998 WEBMAN: Shutdown complete^M 19:28:40:001 supervisor: reaped 17752 exit 0 signal 0 dump 0^M 19:28:40:002 SUPERVISOR: Shutdown complete^M