> This is really weird. I don't even know what could I check. 'listen1'
> source code is pretty clean, and it calls command and args with a simple
> 'exec' call. The only thing that was also unusual is that the 'net'
> variable, which is supposed to be set to a directory, is always blank,
> but the line with 'putenv' and 'net' in 'listen1.c' is commented out,
> so this is to be expected.

It fails on my Linux machine also.  It's because an rfork with
RFNOWAIT sets up a child proc that will ignore SIGCHLD.  If the
program that is executed (in this case rc) calls fork or exec
all SIGCHLD signals will be ignored, see signal(7).

Ultimately, this causes rc to set status='' for every process
it forks.  That's why all those tests are returning true.

The solution is probably just reenabling the SIGCHLD handler
at /usr/local/plan9/src/lib9/rfork.c:96 after the second fork.

  Anthony

Reply via email to