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 を使用しており、ネットワークの状態が変化するといくつかのスクリプトを呼び出すことができます。

一種のハックですが、動作しています。/etc/wicd/scripts/postconnect にスクリプトを配置しました:

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

すると、デーモンが期待どおりに起動します。

注:sleep 60スクリプトが呼び出されてからちょうど 60 秒後にネットワークが動作を開始するため、これは必須です。

答え3

上記の回答はどちらもうまくいかなかったので、ハックも実行しました。スクリプト内のコマンドの先頭を編集し/etc/init.d/isc-dhcp-serverて追加し、次のように変更しました。sleep 20start

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 を追加することで解決しました。network -online.target のみを必要とするように設定されていること
に注意してくださいisc-dhcp-server.service。これについて非常にわかりにくい説明を見ましたman systemd.special...
そこで、オプションを追加し、systemd を再ロードしてsystemctl daemon-reloadLinux を再起動すると、正常に動作するようになりました...

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

関連情報