我在 Debian Squeeze 上默认安装了未更改的 Mumble 服务器(软件包“mumble-server”)。在以前的设置中,使用默认初始化脚本在启动时启动服务器(称为 murmurd)效果很好。在新的设置中,在我看来,这在各个方面都是相同的,murmurd 似乎没有在启动时绑定到网络地址。因此,在启动后重新启动进程之前,任何客户端都无法连接。
日志很能说明问题。启动时:
<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
并且没有客户端可以连接。service mumble-server restart
然而,在启动后使用会给出:
<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
注意第三行。因此,在我看来,初始化脚本会尝试在网络启动并运行之前启动守护进程。/etc/rc2.d/S19mumble-server
不过,软件包附带的脚本说:
# Required-Start: $network $local_fs $remote_fs dbus
完全相同的设置在不同的机器上运行良好(也运行 Debian Squeeze),所以我开始怀疑它与启动时间或其他一些不确定因素有关。
有想法吗?
答案1
我知道这个问题已经有两年了,但最近我在运行“wheezy”的机器上偶然发现了同样的问题。在各个站点上搜索解决方案后,这似乎是由网络管理器引起的问题,网络管理器没有足够快地启动网络接口以允许打开其套接字。
因此,我从启动顺序中删除了网络管理器:
update-rc.d network-manager remove
并通过/etc/interfaces
- 和/etc/resolv.conf
- 文件配置了我的网络接口,如下所述这里。
在 mumble-server 初始化脚本中添加网络管理器作为依赖项/etc/init.d/mumble-server
,update-rc.d mumble-server remove && update-rc.d mumbleserver defaults
不幸的是没有成功,尽管 mumble 收到了更高的序列值(19;网络管理器有 18)。