chiark / gitweb /
nspawn: report back to systemd only very late whether we are OK
authorLennart Poettering <lennart@poettering.net>
Mon, 29 Dec 2014 16:54:04 +0000 (17:54 +0100)
committerLennart Poettering <lennart@poettering.net>
Mon, 29 Dec 2014 16:54:33 +0000 (17:54 +0100)
That way, systemd can actually figure out if everything is OK with
nspawn.

src/nspawn/nspawn.c

index f255e57888112a8e838b60916b54d0e36de930e4..6aaceac30b97a7321d9068688a600369340d8d3d 100644 (file)
@@ -3132,10 +3132,6 @@ int main(int argc, char *argv[]) {
                 goto finish;
         }
 
                 goto finish;
         }
 
-        sd_notify(false,
-                  "READY=1\n"
-                  "STATUS=Container running.");
-
         assert_se(sigemptyset(&mask) == 0);
         sigset_add_many(&mask, SIGCHLD, SIGWINCH, SIGTERM, SIGINT, -1);
         assert_se(sigprocmask(SIG_BLOCK, &mask, NULL) == 0);
         assert_se(sigemptyset(&mask) == 0);
         sigset_add_many(&mask, SIGCHLD, SIGWINCH, SIGTERM, SIGINT, -1);
         assert_se(sigprocmask(SIG_BLOCK, &mask, NULL) == 0);
@@ -3517,7 +3513,11 @@ int main(int argc, char *argv[]) {
                         /* Notify the child that the parent is ready with all
                          * its setup, and that the child can now hand over
                          * control to the code to run inside the container. */
                         /* Notify the child that the parent is ready with all
                          * its setup, and that the child can now hand over
                          * control to the code to run inside the container. */
-                        (void)barrier_place(&barrier);
+                        (void) barrier_place(&barrier);
+
+                        sd_notify(false,
+                                  "READY=1\n"
+                                  "STATUS=Container running.");
 
                         r = sd_event_new(&event);
                         if (r < 0) {
 
                         r = sd_event_new(&event);
                         if (r < 0) {