X-Git-Url: http://git.linux-vserver.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=util-vserver%2Fsrc%2Fvnamespace.c;h=fc1cfb5d13908b2399224d8c592e19415babf0f1;hb=cce0d3d757dba4c849b7b7e907e3e2cf26f8b76b;hp=c78ce1d21fe0a2d9ee49e37e6a3054a2f55bc20c;hpb=44e7d56b12c9068077af46c5931f1d01941f1e4e;p=util-vserver.git diff --git a/util-vserver/src/vnamespace.c b/util-vserver/src/vnamespace.c index c78ce1d..fc1cfb5 100644 --- a/util-vserver/src/vnamespace.c +++ b/util-vserver/src/vnamespace.c @@ -92,9 +92,12 @@ showVersion() } static void -newNamespace() +newNamespace(char const *cmd) { pid_t pid; + + signal(SIGCHLD, SIG_DFL); + #ifdef NDEBUG pid = sys_clone(CLONE_NEWNS|CLONE_VFORK|SIGCHLD, 0); #else @@ -108,7 +111,7 @@ newNamespace() case 0 : break; default : - exitLikeProcess(pid); + exitLikeProcess(pid, cmd, wrapper_exit_code); } } @@ -182,7 +185,7 @@ int main(int argc, char *argv[]) else if (optind==argc && (do_new || do_enter)) WRITE_MSG(2, "No command specified; try '--help' for more information\n"); else { - if (do_new) newNamespace(); + if (do_new) newNamespace(argv[optind]); else if (do_set) setNamespace(); else if (do_cleanup) cleanupNamespace(); else if (do_enter) enterNamespace(xid);