如果我手动启动它(“/usr/sbin/named -u named”),named 可以启动并正常运行,但是当我使用 systemctl 启动它时,它会失败:
# systemctl start named
Job for named.service failed because a timeout was exceeded. See "systemctl status named.service" and "journalctl -xe" for details.
状态仅显示正常的命名消息,但是在它仍在运行时“ps alx”使它看起来像是在某处寻找密码输入,这是不应该的,但也许这是一个默认的 systemctl 的事情和一个转移注意力的手段:
4 0 18608 28440 20 0 134824 1296 poll_s S+ pts/1 0:00 systemctl start named
0 0 18609 18608 20 0 15428 824 poll_s S+ pts/1 0:00 /usr/bin/systemd-tty-ask-password-agent --watch
0 0 18610 18608 20 0 294680 3056 poll_s Sl+ pts/1 0:00 /usr/bin/pkttyagent --notify-fd 5 --fallback
5 25 18624 1 20 0 294512 146616 sigsus Ssl ? 0:06 /usr/sbin/named -u named -c /etc/named.conf
无论如何,希望有人知道发生了什么......
答案1
您可以使用 named-checkconf 命令测试您的 named.conf 配置。
named-checkconf /etc/named.conf
如果该命令没有输出,则表示您的 named.conf 配置良好。
如果出现错误,您将看到一些对该错误的引用。
答案2
问题原来是 systemd 在与 named.conf 放置的位置不同的位置寻找进程 pid:
May 3 16:04:59 ns2 systemd: PID file /run/named/named.pid not readable (yet?) after start.
options {
directory "/var/named";
pid-file "/var/run/named/pid";
}