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