From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from archone.tamu.edu ([128.194.53.42]) by hawkwind.utcs.toronto.edu with SMTP id <24189>; Mon, 28 Mar 1994 22:00:58 -0500 Received: from quux.es.su.oz.au ([129.78.145.8]) by archone.tamu.edu with SMTP id <11415>; Mon, 28 Mar 1994 20:59:24 -0600 Received: by quux.es.su.oz.au id <401>; Tue, 29 Mar 1994 12:59:48 +1000 From: noel@es.su.oz.au Date: Mon, 28 Mar 1994 21:54:26 -0500 to: Scott Merrilees , The rc Mailing List Subject: Re: solaris 2.2 & rshd & rc In-Reply-To: <199403290229.AA01584@cerberus.bhpese.oz.au> Message-ID: <199403291254.26792.out.bajem@es.su.oz.au> From: Scott Merrilees Subject: solaris 2.2 & rshd & rc When doing a rsh command to a solaris 2.2 box, I find that the rc started by rshd hangs in a cpu loop after the command has terminated. Interestingly, SIGCLD is ingored in both rshd & rc. Has anyone else fixed this problem ? it's not that rc _ignores_ SIGCLD, it just doesn't touch it. when rc is started by login and forks a program, you will notice that SIGCLD is SIG_DFL. but when rc is started by rshd, it must be set to SIG_IGN. bad shit happens in sysvr4 when this is done, namely, a parent is not notified of the death of a child, so rc just sits in that wait loop waiting to pick up the status of the child it just forked, a status it will never get. i noticed the cpu in a tight loop when this happened. anyway, i just hacked the code to make sure SIGCLD is _always_ SIG_DFL. this seems to fix the problem.