[ns_exec] Add SIGCHLD to default clone flags
orenl at cs.columbia.edu
Fri Jul 10 10:52:02 PDT 2009
This is the default behavior. Without it, the process will not
report/be reported to the parent on a normal wait() call. Instead
the parent will need to use __WALL wait flag.
This caused a nasty bug where running 'rstr' from a checkpoint
image of a process executed with ns_exec would cause the shell
to skip to the next line in the script without waiting for the
restarted task to terminate, contrary to one's expectation.
TODO: if someone would like to run with anything else than the
SIGCHLD there, then add an option to ns_exec to allow it.
diff --git a/ns_exec.c b/ns_exec.c
index 3c3aa9e..0d2f54a 100644
@@ -219,7 +219,7 @@ void write_pid(char *pid_file, int pid)
int main(int argc, char *argv)
- unsigned long flags = 0, eflags = 0;
+ unsigned long flags = SIGCHLD, eflags = 0;
int ret, use_clone = 0;
More information about the Containers