Работая на 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
и добавил 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 в required.
Обратите внимание, что isc-dhcp-server.service
настроено требование только network-online.target. Я видел очень запутанное объяснение по 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
#