Date: Thu, 28 Aug 1997 04:36:53 +1000 From: Bruce Evans <bde@zeta.org.au> To: bugs@freebsd.org Subject: rlogin misses child death Message-ID: <199708271836.EAA03347@godzilla.zeta.org.au>
index | next in thread | raw e-mail
Why does rlogin ignore SIGCHLD when it is stopped? Doing so causes it
to miss the death of the child. To see the problem, rlogin somewhere,
suspend rlogin, then kill the remote shell. Then de-suspend rlogin.
Sometimes (more often than not here) the child starts up first. Then
the parent doesn't exit until it attempts to write something and gets
a SIGPIPE.
telnet notices that the connection has gone away when it is de-suspended
after being suspended using ^]z, but not when it has been suspended using
^]^Z.
Bruce
diff -c2 rlogin.c~ rlogin.c
*** rlogin.c~ Wed Aug 6 09:51:11 1997
--- rlogin.c Thu Aug 28 04:15:37 1997
***************
*** 585,591 ****
{
mode(0);
- (void)signal(SIGCHLD, SIG_IGN);
(void)kill(cmdc == defltc.t_suspc ? 0 : getpid(), SIGTSTP);
- (void)signal(SIGCHLD, catch_child);
mode(1);
sigwinch(0); /* check for size changes */
--- 585,589 ----
help
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199708271836.EAA03347>
