I have a default, unchanged installation of the Mumble server on Debian Squeeze (package "mumble-server"). On a previous setup, starting the server (called murmurd) on boot using the default init scripts worked fine. On a new setup, that seems to me to be identical in every way, murmurd doesn't seem to bind to a network address on boot. No clients can thus connect until I restart the process after booting.
The logs are quite telling. On boot:
<W>2012-03-25 00:15:01.543 Murmur 1.2.2 (1.2.2-6+squeeze1) running on
X11: Debian GNU/Linux 6.0.4 (squeeze): Booting servers <W>2012-03-25
00:15:01.617 1 => Announcing server via bonjour <W>2012-03-25
00:15:01.650 1 => Not registering server as public
and no clients can connect. Using service mumble-server restart after boot, however, gives:
<W>2012-03-25 00:22:27.529 Murmur 1.2.2 (1.2.2-6+squeeze1) running on
X11: Debian GNU/Linux 6.0.4 (squeeze): Booting servers <W>2012-03-25
00:22:27.549 1 => Server listening on [::]:64738 <W>2012-03-25
00:22:27.559 1 => Announcing server via bonjour <W>2012-03-25
00:22:27.570 1 => Not registering server as public
Notice the third line.
It thus seems to me that the init script tries to start the daemon before the network is up and running. The /etc/rc2.d/S19mumble-server script that comes with the package says, though:
# Required-Start: $network $local_fs $remote_fs dbus
The exact same setup works fine on a different machine (also running Debian Squeeze), so I'm beginning to suspect it has something to do with timing on boot, or some other nondeterministic factor.
Ideas?