> 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
