This ensures systemd knows when pulseaudio finishes loading, thus never marking pulseaudio as active if startup fails. --- src/daemon/main.c | 8 ++++++++ src/daemon/systemd/user/pulseaudio.service.in | 1 + 2 files changed, 9 insertions(+) diff --git a/src/daemon/main.c b/src/daemon/main.c index 82dec01..24fe8dc 100644 --- a/src/daemon/main.c +++ b/src/daemon/main.c @@ -1131,12 +1131,20 @@ int main(int argc, char *argv[]) { pa_log_info("Daemon startup complete."); +#ifdef HAVE_SYSTEMD_DAEMON + sd_notify(0, "READY=1"); +#endif + retval = 0; if (pa_mainloop_run(mainloop, &retval) < 0) goto finish; pa_log_info("Daemon shutdown initiated."); +#ifdef HAVE_SYSTEMD_DAEMON + sd_notify(0, "STOPPING=1"); +#endif + finish: #ifdef HAVE_DBUS if (server_bus) diff --git a/src/daemon/systemd/user/pulseaudio.service.in b/src/daemon/systemd/user/pulseaudio.service.in index e08ff1e..ae9e8e5 100644 --- a/src/daemon/systemd/user/pulseaudio.service.in +++ b/src/daemon/systemd/user/pulseaudio.service.in @@ -2,6 +2,7 @@ Description=Sound Service [Service] +Type=notify ExecStart=@PA_BINARY@ --daemonize=no Restart=on-failure -- 2.4.6