我已经尝试了我所知道的所有方法,并且昨天花了一整天时间试图解决这个问题,但我放弃了。我需要你的帮助...
我有一台 Solaris 10 服务器,上面有 BIND 9 服务器。无论我做什么,服务总是无法启动(使用 svcadm restart)并处于维护模式。
但是,如果我手动调用 /usr/sbin/named,服务器就会顺利启动。
我们有另一台服务器(从属 DNS),其配置似乎相同,并且服务运行正常。我尝试比较两台服务器的配置,但找不到任何差异。
这是 svcs -vx svc:/network/dns/server:default 的输出
svc:/network/dns/server:default (?)
State: maintenance since Fri May 20 10:20:39 2011
Reason: Start method failed repeatedly, last exited with status 1.
See: http://sun.com/msg/SMF-8000-KS
See: man -M /usr/man -s 1M named
See: /var/svc/log/network-dns-server:default.log
Impact: This service is not running.
以下是 /var/svc/log/network-dns-server:default.log 中的相应行
[ May 20 10:20:39 Enabled. ]
[ May 20 10:20:39 Executing start method ("/lib/svc/method/dns-server start default") ]
dns-server: Executing: /usr/sbin/named
dns-server : start failed! Check syslog for further information.
[ May 20 10:20:39 Method "start" exited with status 1 ]
以下是 svcs | grep dns 的输出
maintenance 10:20:39 svc:/network/dns/server:default
我不知道我可以查看其他日志,并且尚未增加 debug_level(这是一个生产服务器),但我正在考虑......
有谁能提供线索或指点我还能检查什么吗?
注意:SunOS 5.10_x86:不久前已通过更大的补丁集在此服务器上应用了 BIND 补丁(119784-17),但该问题之前也出现过。
编辑:
我发现了问题...它出在服务的配置中。
start/user 和 start/group 属性被设置为指定用户,但服务是以 root 身份安装的。
为了解决这个问题,我这样做了......
svccfg -s svc:/network/dns/server:default
> setprop start/user=root
> setprop start/group=root
> exit
svcadm refresh svc:/network/dns/server:default
svcadm clear svc:/network/dns/server:default
svcadm restart svc:/network/dns/server:default
svcs -p svc:/network/dns/server:default
ps -ef | grep LISTEN | grep "\.53 "
答案1
看来这是一个已知问题。随附的 SMF 存在 chroot 问题。请查看http://blogs.oracle.com/anay/entry/bind_9_dns_server_meets寻求解决方案……