isc-dhcp-server 不会自动启动

isc-dhcp-server 不会自动启动

在 Astra Linux 1.3 上运行,我的 dhcp 服务 (isc-dhcp-server) 现在配置良好,可以按预期工作,但有一点细微差别 - 它仅在启动时工作,但系统不会在启动时运行它。这样做sudo update-rc.d isc-dhcp-server defaults没有帮助。可以通过这种方式将其他服务添加到自动启动中(并从中移除),因为这是基于 SysV 的系统固有的。我必须做什么才能让它运行?谢谢。

PS uname -a给出

3.2.0-27-通用

重启后sudo service --status-all

[ - ] isc-dhcp 服务器

答案1

我使用过Ubuntu Server 18.04,也遇到过类似的问题:isc-dhcp-server无法自动启动。对我来说,问题出在服务被禁用;执行后sudo systemctl enable isc-dhcp-server问题就解决了。

答案2

正如 ivanivan 所说,守护进程没有启动,因为所有网络接口都已关闭。所以我决定在它们启动后再次调用启动脚本。我的系统使用 wicd 作为网络管理器,它可以在网络状态发生变化时调用一些脚本。

有点像 hack,但确实有效。我已将脚本放入 /etc/wicd/scripts/postconnect :

sleep 60
/etc/init.d/isc-dhcp-server start

瞧,守护进程按预期启动了。

注意:sleep 60这是必需的,因为网络在脚本调用后 60 秒才开始工作。

答案3

上述两个答案都不适用于我,因此我也做了一些修改 - 我编辑/etc/init.d/isc-dhcp-server并在脚本中的命令sleep 20开头添加了一个,因此进行了更改,使其看起来像以下内容:start

case "$1" in
    start)
        sleep 20         # <--- added this line (without the comment)
        test_config
        log_daemon_msg "Starting $DESC" "$NAME"
        start-stop-daemon --start --quiet --pidfile "$DHCPD_PID" \
            --exec /usr/sbin/dhcpd -- \
            -q $OPTIONS -cf "$DHCPD_CONF" -pf "$DHCPD_PID" $INTERFACES
        sleep 2

        if check_status -q; then
            log_end_msg 0
        else
            log_failure_msg "check syslog for diagnostics."
            log_end_msg 1
            exit 1
        fi
        ;;

现在它可以工作了(当然,最初需要延迟 20 秒)。

答案4

我遇到了同样的问题。解决了在必需项上添加 network.target 的问题。
请注意,isc-dhcp-server.service已配置仅需要 network-online.target。我看到了关于man systemd.special此问题的非常令人困惑的解释...
因此,我只需添加选项,重新加载 systemdsystemctl daemon-reload并重新启动 Linux,就可以正常工作了...

# Provides:          isc-dhcp-server
# Required-Start:    $remote_fs $network $syslog network.target
# Required-Stop:     $remote_fs $network $syslog network.target
#

相关内容