From: Simon McVittie Date: Mon, 15 Jan 2018 15:31:55 +0000 (+0000) Subject: bus: Also tell systemd before we shut down X-Git-Tag: dbus-1.13.4~64 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=03c0db9ff51dedeb98f42c715a70a1bd10c7f595;p=thirdparty%2Fdbus.git bus: Also tell systemd before we shut down Signed-off-by: Simon McVittie Reviewed-by: Philip Withnall Bug: https://bugs.freedesktop.org/show_bug.cgi?id=104641 --- diff --git a/bus/main.c b/bus/main.c index 578aa989b..28223899c 100644 --- a/bus/main.c +++ b/bus/main.c @@ -320,6 +320,7 @@ handle_reload_watch (DBusWatch *watch, loop = bus_context_get_loop (context); if (loop != NULL) { + _dbus_daemon_report_stopping (); _dbus_loop_quit (loop); } } diff --git a/dbus/dbus-sysdeps-util-unix.c b/dbus/dbus-sysdeps-util-unix.c index 8a7c92782..24eba4e31 100644 --- a/dbus/dbus-sysdeps-util-unix.c +++ b/dbus/dbus-sysdeps-util-unix.c @@ -1556,3 +1556,15 @@ _dbus_daemon_report_reloaded (void) _dbus_daemon_report_ready (); #endif } + +/** + * Report to a service manager that the daemon calling this function is + * shutting down. This is currently only implemented for systemd. + */ +void +_dbus_daemon_report_stopping (void) +{ +#ifdef HAVE_SYSTEMD + sd_notify (0, "STOPPING=1"); +#endif +} diff --git a/dbus/dbus-sysdeps-util-win.c b/dbus/dbus-sysdeps-util-win.c index 917dd05e9..a5c3bba63 100644 --- a/dbus/dbus-sysdeps-util-win.c +++ b/dbus/dbus-sysdeps-util-win.c @@ -1669,3 +1669,8 @@ void _dbus_daemon_report_reloaded (void) { } + +void +_dbus_daemon_report_stopping (void) +{ +} diff --git a/dbus/dbus-sysdeps.h b/dbus/dbus-sysdeps.h index d8e695898..0d1ff7c46 100644 --- a/dbus/dbus-sysdeps.h +++ b/dbus/dbus-sysdeps.h @@ -690,6 +690,7 @@ void _dbus_rlimit_free (DBusRLimit *lim); void _dbus_daemon_report_ready (void); void _dbus_daemon_report_reloading (void); void _dbus_daemon_report_reloaded (void); +void _dbus_daemon_report_stopping (void); /** @} */