mumble icon indicating copy to clipboard operation
mumble copied to clipboard

service mumble-server stop / restart not working

Open Boehrsi opened this issue 8 years ago • 13 comments

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

Boehrsi avatar Jul 03 '16 13:07 Boehrsi

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)

Kissaki avatar Jul 12 '16 10:07 Kissaki

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

Boehrsi avatar Jul 12 '16 19:07 Boehrsi

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 avatar Jul 12 '16 19:07 Kissaki

@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.

mkrautz avatar Jul 12 '16 19:07 mkrautz

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.

Boehrsi avatar Jul 12 '16 19:07 Boehrsi

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

Kissaki avatar Jul 13 '16 10:07 Kissaki

This script states the PIDFOLDER /var/run/mumble-server which is also empty on my system.

Boehrsi avatar Jul 15 '16 21:07 Boehrsi

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.

Avamander avatar Mar 19 '19 19:03 Avamander

Any news?

rodrigoslayertech avatar Oct 04 '19 19:10 rodrigoslayertech

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...

martok avatar Mar 31 '20 12:03 martok

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.

ghost avatar Mar 31 '20 16:03 ghost

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.

Hams3c avatar Sep 19 '20 21:09 Hams3c

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.

Jachimo avatar May 28 '23 21:05 Jachimo

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?

Krzmbrzl avatar Jul 02 '24 07:07 Krzmbrzl

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.

Boehrsi avatar Jul 07 '24 12:07 Boehrsi