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>
next in thread | raw e-mail | index | archive | help
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 ----
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199708271836.EAA03347>