[Unit] Description=w3cs shared PulseAudio (per-seat null sinks) After=network.target [Service] # One daemon serves every seat's null sink and monitor. It must live # OUTSIDE the seat units' cgroups: when lab-live self-started pulse, the # daemon landed in whichever seat booted first, and that seat's restart # SIGKILLed it - every other seat then played into a dead server and the # relay's pulsesrc failed with "No such entity" (silent sessions, twice # in one day). The socket lives at /run/w3cs-pulse/native; seats point # PULSE_SERVER there. User=ubuntu RuntimeDirectory=w3cs-pulse Environment=PULSE_RUNTIME_PATH=/run/w3cs-pulse ExecStart=/usr/bin/pulseaudio --daemonize=no --exit-idle-time=-1 --disallow-exit Restart=always RestartSec=2 [Install] WantedBy=multi-user.target