mumble/scripts/murmur.service
WGH b55874d99f MAINT/FIX(server): Fix systemd murmur.service
As things are now, 'systemctl start murmur' hangs and eventually times
out.

The problem is that in the unit file, both Type=forking and
PIDFile=/run/murmur/murmur.pid are specified. In this scenario systemd
will wait for the PID file to appear. However, it will never appear
there, as murmur does setuid on its own before writing the pid file,
and thus lacks the rights to write to /run, and even if it had the rights,
it doesn't try to create a missing directory anyway.

Switch to Type=exec and foreground mode to fix this. systemd services
don't really need forking behaviour anyway, and in fact handling
forking servers requires some extra hoops to jump through on the
systemd side.

This change also makes murmur (when run with murmur.service) to log
to the systemd journal instead of log files.

Although the unit file has been broken for a long time, Debian-based
distros still use the /etc/init.d/mumble-server wrapped with
systemd-sysv-generator, and haven't noticed the problem.
2020-12-09 14:49:21 +03:00

16 lines
252 B
Desktop File

[Unit]
Description=Mumble Daemon
After=network.target
[Service]
Type=exec
ExecStart=/usr/bin/murmurd -fg -ini /etc/murmur.ini
Restart=always
PrivateDevices=true
PrivateTmp=true
ProtectSystem=full
ProtectHome=true
[Install]
WantedBy=multi-user.target