From: Tom Gundersen Date: Fri, 29 May 2015 16:38:44 +0000 (+0200) Subject: udevd: notify - expose a bit more of the internal state X-Git-Tag: v221~252 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=b79aacbff61e77c5fa579e30f7c6fc7f2d67e9e4;p=thirdparty%2Fsystemd.git udevd: notify - expose a bit more of the internal state This notifies PID1 about config being flushed, about shutdown starting and shutdown finalizing. --- diff --git a/src/udev/udevd.c b/src/udev/udevd.c index 81ba6650e4c..fae8f7895df 100644 --- a/src/udev/udevd.c +++ b/src/udev/udevd.c @@ -730,6 +730,10 @@ static void manager_exit(Manager *manager) { manager->exit = true; + sd_notify(false, + "STOPPING=1\n" + "STATUS=Starting shutdown..."); + /* close sources of new events and discard buffered events */ manager->ctrl = udev_ctrl_unref(manager->ctrl); manager->ctrl_event = sd_event_source_unref(manager->ctrl_event); @@ -759,9 +763,17 @@ static void manager_reload(Manager *manager) { assert(manager); + sd_notify(false, + "RELOADING=1\n" + "STATUS=Flushing configuration..."); + manager_kill_workers(manager); manager->rules = udev_rules_unref(manager->rules); udev_builtin_exit(manager->udev); + + sd_notify(false, + "READY=1\n" + "STATUS=Processing..."); } static void event_queue_start(Manager *manager) { @@ -1703,6 +1715,10 @@ int main(int argc, char *argv[]) { sd_event_get_exit_code(manager->event, &r); exit: + sd_notify(false, + "STOPPING=1\n" + "STATUS=Shutting down..."); + if (manager) udev_ctrl_cleanup(manager->ctrl); mac_selinux_finish();