From 5425dda0738fdbf523e869471feaf9d9a52a234a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Felix=20D=C3=B6rre?= Date: Sat, 16 May 2020 17:57:58 +0200 Subject: [PATCH] Check for pulseaudio daemon by socket instead of by pid see #861 --- src/daemon/main.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/src/daemon/main.c b/src/daemon/main.c index f1810c5f1..a58287819 100644 --- a/src/daemon/main.c +++ b/src/daemon/main.c @@ -62,6 +62,9 @@ #include #include +#include +#include +#include #include #include #include @@ -612,12 +615,20 @@ int main(int argc, char *argv[]) { goto finish; } - if (pa_pid_file_check_running(&pid, "pulseaudio") < 0) + pa_threaded_mainloop *mainloop = pa_threaded_mainloop_new(); + pa_context *context = pa_context_new(pa_threaded_mainloop_get_api(mainloop), "pulseaudio daemon check"); + if (pa_context_connect(context, NULL, 0, NULL) < 0) pa_log_info("Daemon not running"); else { - pa_log_info("Daemon running as PID %u", pid); + pa_threaded_mainloop_start(mainloop); + pa_threaded_mainloop_lock(mainloop); + pa_context_disconnect(context); + pa_threaded_mainloop_unlock(mainloop); + pa_threaded_mainloop_stop(mainloop); + pa_log_info("Daemon running"); retval = 0; } + pa_threaded_mainloop_free(mainloop); goto finish;