|
|
Backquoted expressions that appear on a line by themselves are evaluated before any descriptors are parsed. That is, they are evaluated before the frame is fully current. Thus, the following can occur:
If a daemon process is started via a shell script that FMLI code invokes in a backquoted expression, FMLI waits for this process until the UNIX system clears up zombies. While waiting, FMLI appears to be locked because the backquoted command that was exec'd created a child whose stdout is still connected to FMLI via a pipe. When the command becomes a zombie, FMLI continues reading the pipe that the (daemon) child still has open. FMLI does not know if its grandchildren are going to be daemons or if they are going to write to the pipe. To preserve the ability of grandchildren to ouput to FMLI, the following fix must be placed in the script executed by the backquoted expression, to redirect the stdout of the daemon:
nohup my_daemon > /dev/null &