Date: Wed, 19 Jan 2005 08:40:25 +0100 From: Raymond Wiker <Raymond.Wiker@fast.no> To: freebsd-stable@freebsd.org Subject: Re: User's cron job creates zombie process on 5.3 Message-ID: <16878.3817.600151.965257@raw.grenland.fast.no> In-Reply-To: <20050119064822.GA65506@cirb503493.alcatel.com.au> References: <41EDA6FB.6000706@snu.ac.kr> <20050119064822.GA65506@cirb503493.alcatel.com.au>
next in thread | previous in thread | raw e-mail | index | archive | help
Peter Jeremy writes: > On Wed, 2005-Jan-19 09:16:59 +0900, Rob Lahaye wrote: > > tunnel="-L 55110:localhost:110 pop3.univ.net" > > tunnel_up=`pgrep -f -- "${tunnel}"` > > [ "${tunnel_up}" = "" ] && /usr/bin/ssh -N -f ${tunnel} > > >It works beautifully, but why does this also generate one zombie process: > > USER PID %CPU %MEM VSZ RSS TT STAT STARTED TIME COMMAND > > rob 655 0.0 0.0 0 0 ?? Z Sat02PM 0:00.01 <defunct> > > You get a zombie when a process has exited and the parent hasn't issued > a wait(2) (or SIG_IGN'd SIGCHLD). Have a look at what the parent process > is and that might give you an idea as to what is going wrong. Ancient Perl did not collect for children started via the backtick operator - is this a possible issue for /bin/sh as well? It should be harmless to call wait just after the use of the backtick operator above; does that change anything? I.e: tunnel_up=`pgrep -f -- "${tunnel}"`; wait To see the parent pid, add "-O ppid" to the arguments to ps; e.g, ps axww -O ppid -- Raymond Wiker Mail: Raymond.Wiker@fast.no Senior Software Engineer Web: http://www.fast.no/ Fast Search & Transfer ASA Phone: +47 23 01 11 60 P.O. Box 1677 Vika Fax: +47 35 54 87 99 NO-0120 Oslo, NORWAY Mob: +47 48 01 11 60
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?16878.3817.600151.965257>