Solaris 10:BIND 9 服务无法作为服务启动,但手动运行时可以运行

Solaris 10:BIND 9 服务无法作为服务启动,但手动运行时可以运行

我已经尝试了我所知道的所有方法,并且昨天花了一整天时间试图解决这个问题,但我放弃了。我需要你的帮助...

我有一台 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寻求解决方案……

相关内容