Unverified Commit cc00cc56 by Tycho Andersen Committed by Christian Brauner

lxc-execute: actually exit with the status of the spawned task

Now that we have things propagated through init and liblxc correctly, at least in non-daemon mode, we can exit with the actual exit status of the task, instead of always succeeding, which is not so helpful. Signed-off-by: 's avatarTycho Andersen <tycho@tycho.ws>
parent 6d88f7ea
...@@ -168,14 +168,20 @@ int main(int argc, char *argv[]) ...@@ -168,14 +168,20 @@ int main(int argc, char *argv[])
c->daemonize = false; c->daemonize = false;
bret = c->start(c, 1, my_args.argv); bret = c->start(c, 1, my_args.argv);
if (c->daemonize)
ret = EXIT_SUCCESS;
else
ret = c->error_num;
lxc_container_put(c); lxc_container_put(c);
if (!bret) { if (!bret) {
fprintf(stderr, "Failed run an application inside container\n"); fprintf(stderr, "Failed run an application inside container\n");
exit(EXIT_FAILURE); exit(EXIT_FAILURE);
} }
exit(ret); if (c->daemonize)
exit(EXIT_SUCCESS);
else {
if (WIFEXITED(c->error_num)) {
exit(WEXITSTATUS(c->error_num));
} else {
/* Try to die with the same signal the task did. */
kill(0, WTERMSIG(c->error_num));
exit(EXIT_FAILURE);
}
}
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment