Zbigniew Jędrzejewski-Szmek 62fe94
From af4ec4309e8f82aad87a8d574785c12f8763d5f8 Mon Sep 17 00:00:00 2001
Zbigniew Jędrzejewski-Szmek 62fe94
From: Lennart Poettering <lennart@poettering.net>
Zbigniew Jędrzejewski-Szmek 62fe94
Date: Thu, 21 Aug 2014 17:19:28 +0200
Zbigniew Jędrzejewski-Szmek 62fe94
Subject: [PATCH] notify: send STOPPING=1 from our daemons
Zbigniew Jędrzejewski-Szmek 62fe94
Zbigniew Jędrzejewski-Szmek 62fe94
---
Zbigniew Jędrzejewski-Szmek 62fe94
 src/bus-proxyd/bus-proxyd.c         | 6 +++++-
Zbigniew Jędrzejewski-Szmek 62fe94
 src/core/manager.c                  | 3 ++-
Zbigniew Jędrzejewski-Szmek 62fe94
 src/initctl/initctl.c               | 1 +
Zbigniew Jędrzejewski-Szmek 62fe94
 src/journal-remote/journal-remote.c | 6 ++++--
Zbigniew Jędrzejewski-Szmek 62fe94
 src/journal-remote/journal-upload.c | 5 ++++-
Zbigniew Jędrzejewski-Szmek 62fe94
 src/journal/journald.c              | 4 +++-
Zbigniew Jędrzejewski-Szmek 62fe94
 src/login/logind.c                  | 1 +
Zbigniew Jędrzejewski-Szmek 62fe94
 src/machine/machined.c              | 1 +
Zbigniew Jędrzejewski-Szmek 62fe94
 src/network/networkd.c              | 1 +
Zbigniew Jędrzejewski-Szmek 62fe94
 src/nspawn/nspawn.c                 | 8 +++++++-
Zbigniew Jędrzejewski-Szmek 62fe94
 src/resolve/resolved.c              | 4 +++-
Zbigniew Jędrzejewski-Szmek 62fe94
 src/shutdownd/shutdownd.c           | 1 +
Zbigniew Jędrzejewski-Szmek 62fe94
 src/timesync/timesyncd.c            | 8 ++++++--
Zbigniew Jędrzejewski-Szmek 62fe94
 13 files changed, 39 insertions(+), 10 deletions(-)
Zbigniew Jędrzejewski-Szmek 62fe94
Zbigniew Jędrzejewski-Szmek 62fe94
diff --git a/src/bus-proxyd/bus-proxyd.c b/src/bus-proxyd/bus-proxyd.c
Zbigniew Jędrzejewski-Szmek 62fe94
index d8d989b9b0..d35d7f63b2 100644
Zbigniew Jędrzejewski-Szmek 62fe94
--- a/src/bus-proxyd/bus-proxyd.c
Zbigniew Jędrzejewski-Szmek 62fe94
+++ b/src/bus-proxyd/bus-proxyd.c
Zbigniew Jędrzejewski-Szmek 62fe94
@@ -239,7 +239,7 @@ static int rename_service(sd_bus *a, sd_bus *b) {
Zbigniew Jędrzejewski-Szmek 62fe94
                   pid, p,
Zbigniew Jędrzejewski-Szmek 62fe94
                   uid, name,
Zbigniew Jędrzejewski-Szmek 62fe94
                   a->unique_name);
Zbigniew Jędrzejewski-Szmek 62fe94
-                ;
Zbigniew Jędrzejewski-Szmek 62fe94
+
Zbigniew Jędrzejewski-Szmek 62fe94
         return 0;
Zbigniew Jędrzejewski-Szmek 62fe94
 }
Zbigniew Jędrzejewski-Szmek 62fe94
 
Zbigniew Jędrzejewski-Szmek 62fe94
@@ -1474,6 +1474,10 @@ int main(int argc, char *argv[]) {
Zbigniew Jędrzejewski-Szmek 62fe94
         }
Zbigniew Jędrzejewski-Szmek 62fe94
 
Zbigniew Jędrzejewski-Szmek 62fe94
 finish:
Zbigniew Jędrzejewski-Szmek 62fe94
+        sd_notify(false,
Zbigniew Jędrzejewski-Szmek 62fe94
+                  "STOPPING=1\n"
Zbigniew Jędrzejewski-Szmek 62fe94
+                  "STATUS=Shutting down.");
Zbigniew Jędrzejewski-Szmek 62fe94
+
Zbigniew Jędrzejewski-Szmek 62fe94
         policy_free(&policy);
Zbigniew Jędrzejewski-Szmek 62fe94
         strv_free(arg_configuration);
Zbigniew Jędrzejewski-Szmek 62fe94
         free(arg_address);
Zbigniew Jędrzejewski-Szmek 62fe94
diff --git a/src/core/manager.c b/src/core/manager.c
Zbigniew Jędrzejewski-Szmek 62fe94
index c91ece116f..7401817844 100644
Zbigniew Jędrzejewski-Szmek 62fe94
--- a/src/core/manager.c
Zbigniew Jędrzejewski-Szmek 62fe94
+++ b/src/core/manager.c
Zbigniew Jędrzejewski-Szmek 62fe94
@@ -2551,7 +2551,8 @@ void manager_check_finished(Manager *m) {
Zbigniew Jędrzejewski-Szmek 62fe94
         bus_manager_send_finished(m, firmware_usec, loader_usec, kernel_usec, initrd_usec, userspace_usec, total_usec);
Zbigniew Jędrzejewski-Szmek 62fe94
 
Zbigniew Jędrzejewski-Szmek 62fe94
         sd_notifyf(false,
Zbigniew Jędrzejewski-Szmek 62fe94
-                   "READY=1\nSTATUS=Startup finished in %s.",
Zbigniew Jędrzejewski-Szmek 62fe94
+                   "READY=1\n"
Zbigniew Jędrzejewski-Szmek 62fe94
+                   "STATUS=Startup finished in %s.",
Zbigniew Jędrzejewski-Szmek 62fe94
                    format_timespan(sum, sizeof(sum), total_usec, USEC_PER_MSEC));
Zbigniew Jędrzejewski-Szmek 62fe94
 }
Zbigniew Jędrzejewski-Szmek 62fe94
 
Zbigniew Jędrzejewski-Szmek 62fe94
diff --git a/src/initctl/initctl.c b/src/initctl/initctl.c
Zbigniew Jędrzejewski-Szmek 62fe94
index 0954e58afd..f1c2b8dfb4 100644
Zbigniew Jędrzejewski-Szmek 62fe94
--- a/src/initctl/initctl.c
Zbigniew Jędrzejewski-Szmek 62fe94
+++ b/src/initctl/initctl.c
Zbigniew Jędrzejewski-Szmek 62fe94
@@ -431,6 +431,7 @@ int main(int argc, char *argv[]) {
Zbigniew Jędrzejewski-Szmek 62fe94
 
Zbigniew Jędrzejewski-Szmek 62fe94
 fail:
Zbigniew Jędrzejewski-Szmek 62fe94
         sd_notify(false,
Zbigniew Jędrzejewski-Szmek 62fe94
+                  "STOPPING=1\n"
Zbigniew Jędrzejewski-Szmek 62fe94
                   "STATUS=Shutting down...");
Zbigniew Jędrzejewski-Szmek 62fe94
 
Zbigniew Jędrzejewski-Szmek 62fe94
         server_done(&server);
Zbigniew Jędrzejewski-Szmek 62fe94
diff --git a/src/journal-remote/journal-remote.c b/src/journal-remote/journal-remote.c
Zbigniew Jędrzejewski-Szmek 62fe94
index 7f422bfb37..1cc86aeaf3 100644
Zbigniew Jędrzejewski-Szmek 62fe94
--- a/src/journal-remote/journal-remote.c
Zbigniew Jędrzejewski-Szmek 62fe94
+++ b/src/journal-remote/journal-remote.c
Zbigniew Jędrzejewski-Szmek 62fe94
@@ -1530,10 +1530,12 @@ int main(int argc, char **argv) {
Zbigniew Jędrzejewski-Szmek 62fe94
                 }
Zbigniew Jędrzejewski-Szmek 62fe94
         }
Zbigniew Jędrzejewski-Szmek 62fe94
 
Zbigniew Jędrzejewski-Szmek 62fe94
-        server_destroy(&s);
Zbigniew Jędrzejewski-Szmek 62fe94
+        sd_notifyf(false,
Zbigniew Jędrzejewski-Szmek 62fe94
+                   "STOPPING=1\n"
Zbigniew Jędrzejewski-Szmek 62fe94
+                   "STATUS=Shutting down after writing %" PRIu64 " entries...", s.event_count);
Zbigniew Jędrzejewski-Szmek 62fe94
         log_info("Finishing after writing %" PRIu64 " entries", s.event_count);
Zbigniew Jędrzejewski-Szmek 62fe94
 
Zbigniew Jędrzejewski-Szmek 62fe94
-        sd_notify(false, "STATUS=Shutting down...");
Zbigniew Jędrzejewski-Szmek 62fe94
+        server_destroy(&s);
Zbigniew Jędrzejewski-Szmek 62fe94
 
Zbigniew Jędrzejewski-Szmek 62fe94
         free(arg_key);
Zbigniew Jędrzejewski-Szmek 62fe94
         free(arg_cert);
Zbigniew Jędrzejewski-Szmek 62fe94
diff --git a/src/journal-remote/journal-upload.c b/src/journal-remote/journal-upload.c
Zbigniew Jędrzejewski-Szmek 62fe94
index bdeeff6778..40c380aa9e 100644
Zbigniew Jędrzejewski-Szmek 62fe94
--- a/src/journal-remote/journal-upload.c
Zbigniew Jędrzejewski-Szmek 62fe94
+++ b/src/journal-remote/journal-upload.c
Zbigniew Jędrzejewski-Szmek 62fe94
@@ -818,7 +818,10 @@ int main(int argc, char **argv) {
Zbigniew Jędrzejewski-Szmek 62fe94
         }
Zbigniew Jędrzejewski-Szmek 62fe94
 
Zbigniew Jędrzejewski-Szmek 62fe94
 cleanup:
Zbigniew Jędrzejewski-Szmek 62fe94
-        sd_notify(false, "STATUS=Shutting down...");
Zbigniew Jędrzejewski-Szmek 62fe94
+        sd_notify(false,
Zbigniew Jędrzejewski-Szmek 62fe94
+                  "STOPPING=1\n"
Zbigniew Jędrzejewski-Szmek 62fe94
+                  "STATUS=Shutting down...");
Zbigniew Jędrzejewski-Szmek 62fe94
+
Zbigniew Jędrzejewski-Szmek 62fe94
         destroy_uploader(&u);
Zbigniew Jędrzejewski-Szmek 62fe94
 
Zbigniew Jędrzejewski-Szmek 62fe94
 finish:
Zbigniew Jędrzejewski-Szmek 62fe94
diff --git a/src/journal/journald.c b/src/journal/journald.c
Zbigniew Jędrzejewski-Szmek 62fe94
index b1a0e25d0c..de40827d6a 100644
Zbigniew Jędrzejewski-Szmek 62fe94
--- a/src/journal/journald.c
Zbigniew Jędrzejewski-Szmek 62fe94
+++ b/src/journal/journald.c
Zbigniew Jędrzejewski-Szmek 62fe94
@@ -116,7 +116,9 @@ int main(int argc, char *argv[]) {
Zbigniew Jędrzejewski-Szmek 62fe94
         server_driver_message(&server, SD_MESSAGE_JOURNAL_STOP, "Journal stopped");
Zbigniew Jędrzejewski-Szmek 62fe94
 
Zbigniew Jędrzejewski-Szmek 62fe94
 finish:
Zbigniew Jędrzejewski-Szmek 62fe94
-        sd_notify(false, "STATUS=Shutting down...");
Zbigniew Jędrzejewski-Szmek 62fe94
+        sd_notify(false,
Zbigniew Jędrzejewski-Szmek 62fe94
+                  "STOPPING=1\n"
Zbigniew Jędrzejewski-Szmek 62fe94
+                  "STATUS=Shutting down...");
Zbigniew Jędrzejewski-Szmek 62fe94
 
Zbigniew Jędrzejewski-Szmek 62fe94
         server_done(&server);
Zbigniew Jędrzejewski-Szmek 62fe94
 
Zbigniew Jędrzejewski-Szmek 62fe94
diff --git a/src/login/logind.c b/src/login/logind.c
Zbigniew Jędrzejewski-Szmek 62fe94
index 006c56ae51..52e1c43a47 100644
Zbigniew Jędrzejewski-Szmek 62fe94
--- a/src/login/logind.c
Zbigniew Jędrzejewski-Szmek 62fe94
+++ b/src/login/logind.c
Zbigniew Jędrzejewski-Szmek 62fe94
@@ -1226,6 +1226,7 @@ int main(int argc, char *argv[]) {
Zbigniew Jędrzejewski-Szmek 62fe94
 
Zbigniew Jędrzejewski-Szmek 62fe94
 finish:
Zbigniew Jędrzejewski-Szmek 62fe94
         sd_notify(false,
Zbigniew Jędrzejewski-Szmek 62fe94
+                  "STOPPING=1\n"
Zbigniew Jędrzejewski-Szmek 62fe94
                   "STATUS=Shutting down...");
Zbigniew Jędrzejewski-Szmek 62fe94
 
Zbigniew Jędrzejewski-Szmek 62fe94
         if (m)
Zbigniew Jędrzejewski-Szmek 62fe94
diff --git a/src/machine/machined.c b/src/machine/machined.c
Zbigniew Jędrzejewski-Szmek 62fe94
index 6160320127..f9d180d24a 100644
Zbigniew Jędrzejewski-Szmek 62fe94
--- a/src/machine/machined.c
Zbigniew Jędrzejewski-Szmek 62fe94
+++ b/src/machine/machined.c
Zbigniew Jędrzejewski-Szmek 62fe94
@@ -350,6 +350,7 @@ int main(int argc, char *argv[]) {
Zbigniew Jędrzejewski-Szmek 62fe94
 
Zbigniew Jędrzejewski-Szmek 62fe94
 finish:
Zbigniew Jędrzejewski-Szmek 62fe94
         sd_notify(false,
Zbigniew Jędrzejewski-Szmek 62fe94
+                  "STOPPING=1\n"
Zbigniew Jędrzejewski-Szmek 62fe94
                   "STATUS=Shutting down...");
Zbigniew Jędrzejewski-Szmek 62fe94
 
Zbigniew Jędrzejewski-Szmek 62fe94
         if (m)
Zbigniew Jędrzejewski-Szmek 62fe94
diff --git a/src/network/networkd.c b/src/network/networkd.c
Zbigniew Jędrzejewski-Szmek 62fe94
index 665f4c4709..fdb80368d4 100644
Zbigniew Jędrzejewski-Szmek 62fe94
--- a/src/network/networkd.c
Zbigniew Jędrzejewski-Szmek 62fe94
+++ b/src/network/networkd.c
Zbigniew Jędrzejewski-Szmek 62fe94
@@ -125,6 +125,7 @@ int main(int argc, char *argv[]) {
Zbigniew Jędrzejewski-Szmek 62fe94
 
Zbigniew Jędrzejewski-Szmek 62fe94
 out:
Zbigniew Jędrzejewski-Szmek 62fe94
         sd_notify(false,
Zbigniew Jędrzejewski-Szmek 62fe94
+                  "STOPPING=1\n"
Zbigniew Jędrzejewski-Szmek 62fe94
                   "STATUS=Shutting down...");
Zbigniew Jędrzejewski-Szmek 62fe94
 
Zbigniew Jędrzejewski-Szmek 62fe94
         return r < 0 ? EXIT_FAILURE : EXIT_SUCCESS;
Zbigniew Jędrzejewski-Szmek 62fe94
diff --git a/src/nspawn/nspawn.c b/src/nspawn/nspawn.c
Zbigniew Jędrzejewski-Szmek 62fe94
index d01da45930..2c718557ee 100644
Zbigniew Jędrzejewski-Szmek 62fe94
--- a/src/nspawn/nspawn.c
Zbigniew Jędrzejewski-Szmek 62fe94
+++ b/src/nspawn/nspawn.c
Zbigniew Jędrzejewski-Szmek 62fe94
@@ -3071,7 +3071,9 @@ int main(int argc, char *argv[]) {
Zbigniew Jędrzejewski-Szmek 62fe94
                 goto finish;
Zbigniew Jędrzejewski-Szmek 62fe94
         }
Zbigniew Jędrzejewski-Szmek 62fe94
 
Zbigniew Jędrzejewski-Szmek 62fe94
-        sd_notify(0, "READY=1");
Zbigniew Jędrzejewski-Szmek 62fe94
+        sd_notify(false,
Zbigniew Jędrzejewski-Szmek 62fe94
+                  "READY=1\n"
Zbigniew Jędrzejewski-Szmek 62fe94
+                  "STATUS=Container running.");
Zbigniew Jędrzejewski-Szmek 62fe94
 
Zbigniew Jędrzejewski-Szmek 62fe94
         assert_se(sigemptyset(&mask) == 0);
Zbigniew Jędrzejewski-Szmek 62fe94
         assert_se(sigemptyset(&mask_chld) == 0);
Zbigniew Jędrzejewski-Szmek 62fe94
@@ -3504,6 +3506,10 @@ int main(int argc, char *argv[]) {
Zbigniew Jędrzejewski-Szmek 62fe94
         }
Zbigniew Jędrzejewski-Szmek 62fe94
 
Zbigniew Jędrzejewski-Szmek 62fe94
 finish:
Zbigniew Jędrzejewski-Szmek 62fe94
+        sd_notify(false,
Zbigniew Jędrzejewski-Szmek 62fe94
+                  "STOPPING=1\n"
Zbigniew Jędrzejewski-Szmek 62fe94
+                  "STATUS=Terminating...");
Zbigniew Jędrzejewski-Szmek 62fe94
+
Zbigniew Jędrzejewski-Szmek 62fe94
         loop_remove(loop_nr, &image_fd);
Zbigniew Jędrzejewski-Szmek 62fe94
 
Zbigniew Jędrzejewski-Szmek 62fe94
         if (pid > 0)
Zbigniew Jędrzejewski-Szmek 62fe94
diff --git a/src/resolve/resolved.c b/src/resolve/resolved.c
Zbigniew Jędrzejewski-Szmek 62fe94
index 8235558585..88c3bcc591 100644
Zbigniew Jędrzejewski-Szmek 62fe94
--- a/src/resolve/resolved.c
Zbigniew Jędrzejewski-Szmek 62fe94
+++ b/src/resolve/resolved.c
Zbigniew Jędrzejewski-Szmek 62fe94
@@ -100,7 +100,9 @@ int main(int argc, char *argv[]) {
Zbigniew Jędrzejewski-Szmek 62fe94
         sd_event_get_exit_code(m->event, &r);
Zbigniew Jędrzejewski-Szmek 62fe94
 
Zbigniew Jędrzejewski-Szmek 62fe94
 finish:
Zbigniew Jędrzejewski-Szmek 62fe94
-        sd_notify(false, "STATUS=Shutting down...");
Zbigniew Jędrzejewski-Szmek 62fe94
+        sd_notify(false,
Zbigniew Jędrzejewski-Szmek 62fe94
+                  "STOPPIN=1\n"
Zbigniew Jędrzejewski-Szmek 62fe94
+                  "STATUS=Shutting down...");
Zbigniew Jędrzejewski-Szmek 62fe94
 
Zbigniew Jędrzejewski-Szmek 62fe94
         return r < 0 ? EXIT_FAILURE : EXIT_SUCCESS;
Zbigniew Jędrzejewski-Szmek 62fe94
 }
Zbigniew Jędrzejewski-Szmek 62fe94
diff --git a/src/shutdownd/shutdownd.c b/src/shutdownd/shutdownd.c
Zbigniew Jędrzejewski-Szmek 62fe94
index 92907497ed..99aa4b32b3 100644
Zbigniew Jędrzejewski-Szmek 62fe94
--- a/src/shutdownd/shutdownd.c
Zbigniew Jędrzejewski-Szmek 62fe94
+++ b/src/shutdownd/shutdownd.c
Zbigniew Jędrzejewski-Szmek 62fe94
@@ -456,6 +456,7 @@ finish:
Zbigniew Jędrzejewski-Szmek 62fe94
         }
Zbigniew Jędrzejewski-Szmek 62fe94
 
Zbigniew Jędrzejewski-Szmek 62fe94
         sd_notify(false,
Zbigniew Jędrzejewski-Szmek 62fe94
+                  "STOPPING=\n"
Zbigniew Jędrzejewski-Szmek 62fe94
                   "STATUS=Exiting...");
Zbigniew Jędrzejewski-Szmek 62fe94
 
Zbigniew Jędrzejewski-Szmek 62fe94
         return r;
Zbigniew Jędrzejewski-Szmek 62fe94
diff --git a/src/timesync/timesyncd.c b/src/timesync/timesyncd.c
Zbigniew Jędrzejewski-Szmek 62fe94
index 351bfd0236..ee3bc99ae0 100644
Zbigniew Jędrzejewski-Szmek 62fe94
--- a/src/timesync/timesyncd.c
Zbigniew Jędrzejewski-Szmek 62fe94
+++ b/src/timesync/timesyncd.c
Zbigniew Jędrzejewski-Szmek 62fe94
@@ -132,7 +132,9 @@ int main(int argc, char *argv[]) {
Zbigniew Jędrzejewski-Szmek 62fe94
                 log_warning("Failed to parse configuration file: %s", strerror(-r));
Zbigniew Jędrzejewski-Szmek 62fe94
 
Zbigniew Jędrzejewski-Szmek 62fe94
         log_debug("systemd-timesyncd running as pid %lu", (unsigned long) getpid());
Zbigniew Jędrzejewski-Szmek 62fe94
-        sd_notify(false, "READY=1");
Zbigniew Jędrzejewski-Szmek 62fe94
+        sd_notify(false,
Zbigniew Jędrzejewski-Szmek 62fe94
+                  "READY=1\n"
Zbigniew Jędrzejewski-Szmek 62fe94
+                  "STATUS=Daemon is running");
Zbigniew Jędrzejewski-Szmek 62fe94
 
Zbigniew Jędrzejewski-Szmek 62fe94
         if (network_is_online()) {
Zbigniew Jędrzejewski-Szmek 62fe94
                 r = manager_connect(m);
Zbigniew Jędrzejewski-Szmek 62fe94
@@ -153,7 +155,9 @@ int main(int argc, char *argv[]) {
Zbigniew Jędrzejewski-Szmek 62fe94
         sd_event_get_exit_code(m->event, &r);
Zbigniew Jędrzejewski-Szmek 62fe94
 
Zbigniew Jędrzejewski-Szmek 62fe94
 finish:
Zbigniew Jędrzejewski-Szmek 62fe94
-        sd_notify(false, "STATUS=Shutting down...");
Zbigniew Jędrzejewski-Szmek 62fe94
+        sd_notify(false,
Zbigniew Jędrzejewski-Szmek 62fe94
+                  "STOPPING=1\n"
Zbigniew Jędrzejewski-Szmek 62fe94
+                  "STATUS=Shutting down...");
Zbigniew Jędrzejewski-Szmek 62fe94
 
Zbigniew Jędrzejewski-Szmek 62fe94
         return r < 0 ? EXIT_FAILURE : EXIT_SUCCESS;
Zbigniew Jędrzejewski-Szmek 62fe94
 }