From edff1b2204587925178ffd00736afdbcdfb8778f Mon Sep 17 00:00:00 2001 From: Tanu Kaskinen Date: Wed, 20 Jul 2016 23:39:59 +0300 Subject: [PATCH] launch: explain why .service depends on .socket The reason for depending on the socket unit is rather unobvious, so let's add a comment to help people reading the service unit file. Felipe Sateler explained the rationale well in the commit message of 7cb524a77b89, so I just copied the same text into the comment. --- src/daemon/systemd/user/pulseaudio.service.in | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/daemon/systemd/user/pulseaudio.service.in b/src/daemon/systemd/user/pulseaudio.service.in index 0bd2a913d..0d03cc5a6 100644 --- a/src/daemon/systemd/user/pulseaudio.service.in +++ b/src/daemon/systemd/user/pulseaudio.service.in @@ -1,5 +1,19 @@ [Unit] Description=Sound Service + +# We require pulseaudio.socket to be active before starting the daemon, for two +# reasons: +# +# 1. There are no implicit dependencies between sockets and services, so +# the socket, as set up by systemd will race with the socket, as set up +# by the pulseaudio daemon. This can cause the pulseaudio.socket unit to +# fail (even though the pulseaudio service started just fine), which can +# confuse users. +# 2. While it is possible to use the service without the socket, it is not +# clear why it would be desirable. And a user installing pulseaudio and +# doing `systemctl --user start pulseaudio` will not get the socket +# started, which might be confusing and problematic if the server is to +# be restarted later on, as the client autospawn feature might kick in. Requires=pulseaudio.socket After=pulseaudio.socket