src/daemon/systemd/user/pulseaudio.service.in | 16 ++++++++++++++++ 1 file changed, 16 insertions(+)
New commits: commit edff1b2204587925178ffd00736afdbcdfb8778f Author: Tanu Kaskinen <[email protected]> Date: Wed Jul 20 23:39:59 2016 +0300 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. diff --git a/src/daemon/systemd/user/pulseaudio.service.in b/src/daemon/systemd/user/pulseaudio.service.in index 0bd2a91..0d03cc5 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 commit 7cb524a77b892edfd31986382ffbf5276b3eb631 Author: Felipe Sateler <[email protected]> Date: Wed Jul 20 09:57:13 2016 -0400 launch: make pulseaudio.service properly order and require the socket This commit fixes two problems: 1. Because there are no implicit dependencies between sockets and services, 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. diff --git a/src/daemon/systemd/user/pulseaudio.service.in b/src/daemon/systemd/user/pulseaudio.service.in index df42fc3..0bd2a91 100644 --- a/src/daemon/systemd/user/pulseaudio.service.in +++ b/src/daemon/systemd/user/pulseaudio.service.in @@ -1,5 +1,7 @@ [Unit] Description=Sound Service +Requires=pulseaudio.socket +After=pulseaudio.socket [Service] # Note that notify will only work if --daemonize=no _______________________________________________ pulseaudio-commits mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/pulseaudio-commits
