From: Zbigniew Jędrzejewski-Szmek Date: Fri, 7 Oct 2016 14:31:47 +0000 (-0400) Subject: nspawn: fix spurious reboot if container process returns 133 X-Git-Tag: v232~126^2~2 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=27e29a1e4390415e2d5b709f3d8c2d9481b50987;p=thirdparty%2Fsystemd.git nspawn: fix spurious reboot if container process returns 133 --- diff --git a/src/nspawn/nspawn.c b/src/nspawn/nspawn.c index d688d2eb640..12d6eab8bea 100644 --- a/src/nspawn/nspawn.c +++ b/src/nspawn/nspawn.c @@ -3965,10 +3965,14 @@ static int run(int master, /* We failed to wait for the container, or the container exited abnormally. */ return r; if (r > 0 || container_status == CONTAINER_TERMINATED) { - /* r > 0 → The container exited with a non-zero status, - * otherwise → The container exited with zero status and reboot was not requested. */ + /* r > 0 → The container exited with a non-zero status. + * As a special case, we need to replace 133 with a different value, + * because 133 is special-cased in the service file to reboot the container. + * otherwise → The container exited with zero status and a reboot was not requested. + */ + if (r == 133) + r = EXIT_FAILURE; /* replace 133 with the general failure code */ *ret = r; - // XXX: if the container returned 133, we will reboot! return 0; /* finito */ }