Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10.2 9/18/84; site ulysses.UUCP Path: utzoo!linus!gatech!ulysses!smb From: smb@ulysses.UUCP (Steven Bellovin) Newsgroups: net.unix-wizards Subject: Re: killing zombies Message-ID: <1044@ulysses.UUCP> Date: Tue, 13-Aug-85 16:09:59 EDT Article-I.D.: ulysses.1044 Posted: Tue Aug 13 16:09:59 1985 Date-Received: Wed, 14-Aug-85 02:56:31 EDT References: <368@imsvax.UUCP> <564@bu-cs.UUCP> <37@cbnap.UUCP> Organization: AT&T Bell Laboratories, Murray Hill Lines: 11 > If the zombie is an orphan (i.e., its parent process id is 1), you > can always clean it up by signaling init (via kill) with SIGCLD (which > wakes up init which then cleans up all orphaned zombies). This has worked > for me on SRV2 (I think, it was a while ago). If the parent process is 1, /etc/init should find it by itself; certainly, that happens on 4.2bsd where you don't get signal races. But the most common cause of processes refusing to die is when they're hung in a device close routine -- called by exit() in the kernel. Even if you could send it a signal -- which you can't, since all signals are ignored by that point -- it couldn't do anything except re-enter the driver close routine.