在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
上面的答案都不適合我,所以我還做了一個 hack - 我編輯/etc/init.d/isc-dhcp-server
並將 a 添加到腳本中命令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
#