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.
Most helpful comment
I had issues with mumble-server.service too. I've just switched to real systemd service:
and then
systemctl stop murmur@mumble-serverworks perfectly.