mumble
mumble copied to clipboard
service mumble-server stop / restart not working
I installed the mumble-server package via apt-get on an Ubuntu 14.04 VPS and the service mumble-server stop / restart commands aren't working. The stop command does nothing and restart starts a new server, without killing the old one. Beside that everything is working fine (e.g. service mumble-server start). I also tried to enable the PIDFILE in the INI file to "help" the script to identify the process which should be killed, but it's still broken. Using upstart commands (start mumble-server or start murmurd) isn't working at all. Is that a general problem with my system or are the mumble-server scripts broken?
Additional information:
Package: mumble-server Status: install ok installed Priority: optional Section: sound Installed-Size: 3137 Maintainer: Ubuntu Developers [email protected] Architecture: amd64 Source: mumble Version: 1.2.4-0.2ubuntu1.1
In your case, maybe the first process was started differently?
If you stop all mumble-server processes, then start one with service mumble-server start
, does the issue you describe still exist? (stop not stopping, restart not stopping)
Sadly not. Just tried it with only one server, started by "service mumble-server start":
$ ps -ef | grep mumble
00:00:00 grep --color=auto mumble
00:07:09 /usr/sbin/murmurd -ini /etc/mumble-server.ini
$ service mumble-server stop
$ ps -ef | grep mumble
00:00:00 grep --color=auto mumble
00:07:09 /usr/sbin/murmurd -ini /etc/mumble-server.ini
Service description source resides at https://github.com/mumble-voip/mumble/blob/master/scripts/murmur.service
Could you check whether the pid file at /run/murmur/murmur.pid
is written correctly? (with the pid of the started process)
@Kissaki This is on Ubuntu 14.04 with Murmur 1.2.4 from the Ubuntu repos. I don't think it uses the systemd service file.
In /run is no folder called murmur, but one named mumble-server which is empty. @mkrautz if this is normal, do you have any idea which folders / files should be there to allow the service stuff to work.
Files of the package from the ubuntu repos can be found at http://packages.ubuntu.com/trusty/amd64/mumble-server/filelist
The start-stop file (which is used as a fallback for service
AFAIK) is /etc/init.d/mumble-server
This script states the PIDFOLDER /var/run/mumble-server which is also empty on my system.
I compiled latest master and even when the configuration specifies a pidfile for some reason Mumble is not writing it and it also outputs no error about it.
Any news?
I can still reproduce this on current Debian testing with mumble-server 1.3. After a lot of fiddling, I found this is what gets called in the end (added --test for debug purposes):
$ start-stop-daemon --stop --test --retry=TERM/30/KILL/5 --pidfile /run/mumble-server/mumble-server.pid --user mumble-server --exec /usr/sbin/murmurd
Ignoring --retry in test mode
No /usr/sbin/murmurd found running; none killed.
$ ps aux | grep murmurd
mumble-+ 725 0.0 2.6 78628 14048 ? S 13:29 0:00 /usr/sbin/murmurd -ini /etc/mumble-server.ini
Would work without --exec:
$ start-stop-daemon --stop --test --retry=TERM/30/KILL/5 --pidfile /run/mumble-server/mumble-server.pid --user mumble-server
Ignoring --retry in test mode
Would send signal 15 to 725.
And indeed:
$ cat /proc/725/exe
cat: /proc/725/exe: Permission denied
murmur runs in user mumble-server, but I don't understand why the root user executing start-stop-user doesn't have permission?
Workaround for now: I've remove all --exec filters from anything that calls start-stop-daemon --stop
. That is problematic if there ever is a pid file left over, but that's a different problem...
I had issues with mumble-server.service too. I've just switched to real systemd service:
# /etc/systemd/system/[email protected]
[Unit]
Description=Mumble Daemon %I
After=network.target
[Service]
Type=simple
ExecStartPre=/bin/sleep 2
ExecStart=/usr/sbin/murmurd -ini /etc/%i.ini -fg
Restart=always
[Install]
WantedBy=multi-user.target
and then systemctl stop murmur@mumble-server
works perfectly.
This systemd service seems to work better when running systemctl stop murmur@mumble-server
. The problem still exists where stopping mumble-server
running as user mumble-server
does not work.
It appears this issue is still happening in 2023.
I am running Raspbian "Bullseye", fully updated using apt
to latest packages. Kernel is 6.1.21-v7+.
Mumble was installed using apt install mumble-server
, which resulted in version 1.3.4-1.
The management script for mumble-server is /etc/init.d/mumble-server
(MD5 hash is 4ae1ba9fbe0e49a500774cb9f0767cc5). This is a sysv-style script which is installed/enabled using systemd-sysv-install
:
➜ ~ sudo systemctl enable mumble-server
mumble-server.service is not a native service, redirecting to systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable mumble-server
Whether the issue is in the script or in systemd-sysv-install, something about this just doesn't work right.
It seems like an instance of mumble is correctly started on boot, but then if you try and restart the service, it's not killed off and instead a second instance is started. This causes a bunch of problems.
➜ ~ ps aux | grep mumble
mumble-+ 650 0.0 2.4 78920 23324 ? Sl 14:55 0:06 /usr/sbin/murmurd -ini /etc/mumble-server.ini
mumble-+ 5194 0.1 2.4 70700 23236 ? S 16:52 0:03 /usr/sbin/murmurd -ini /etc/mumble-server.ini
And if you try to restart:
➜ ~ sudo systemctl restart mumble-server.service
Job for mumble-server.service failed because a timeout was exceeded.
See "systemctl status mumble-server.service" and "journalctl -xe" for details.
If anyone wants to see the entire contents of journald
for the Mumble service, starting at boot, I have put it into a Github Gist here: https://gist.github.com/Jachimo/5f07ef12d3202ba14daed058d978c72f
Suggestions very welcome.
The systemd files have been rewritten so I expect distros shipping the new ones with Mumble 1.5. Does the issue still happen with the latest systemd files as found in this repo?
For me (mumble-server/focal 1.3.4-1 on Ubuntu 20.04.6 LTS) everything (sudo service mumble-server stop/start/restart/status
) is working well without manually changing services files or configs. I would suggest closing this issue and creating a new one if there is still a problem. This one definitely is a bit dated and if there are still problems a new one with all relevant info should get created.
Please feel free to reopen if required.