Меня терзают смутные сомнения о том, что прямо в самом nut, может быть, где-то можно запустить эту службу. Вполне возможно, что в скрипт запуска службы nut можно воткнуть строку, а может где-то в каких-то конфигах можно прописать.
Пользователь решил продолжить мысль 31 Мая 2012, 11:49:27:
Строки:
6.2.6 Startup scripts
Note
This step is not need if you installed from packages.
Edit your startup scripts, and make sure upsdrvctl and upsd are run every time your system starts
в user-manual как бы намекают, что при установке из пакета, автозапуск службы драйверов должен встать автоматом. Но почему-то это не происходит. С чем это связано - неизвестно.
В файле /etc/init.d/nut путь к файлу указан правильно
upsd=/sbin/upsd
upsdrvctl=/sbin/upsdrvctl
В функции запуска, вроде бы, корректно расписан запуск драйвера.
start_stop_server () {
case "$MODE" in
standalone|netserver)
case "$1" in
start)
! $upsdrvctl start >/dev/null 2>&1 && \
log_progress_msg "(driver(s) failed)" || log_progress_msg "driver(s)"
start-stop-daemon -S -q -p $upsd_pid -x $upsd \
-- $UPSD_OPTIONS >/dev/null 2>&1
;;
stop)
start-stop-daemon -K -o -q -p $upsd_pid -n upsd >/dev/null 2>&1
! /sbin/upsdrvctl stop >/dev/null 2>&1 && \
log_progress_msg "(driver(s) failed)" || log_progress_msg "driver(s)"
;;
esac
;;
none|netclient|*)
return 1
;;
esac
}
Есть одна догадка. Возможно, драйвер не успевает запуститься и сразу идет запуск upsd, драйвер он не находит и не запускается?
Если дело обстоит именно так, то пауза после команды запуска драйвера должна помочь.
case "$1" in
start)
! $upsdrvctl start >/dev/null 2>&1 && \
log_progress_msg "(driver(s) failed)" || log_progress_msg "driver(s)"
sleep 10
start-stop-daemon -S -q -p $upsd_pid -x $upsd \
-- $UPSD_OPTIONS >/dev/null 2>&1
Выставил заведомо большое значение, чтобы времени хватило с избытком.
Если всё на самом деле так, то никакие прописывания через update-rc.d не нужны, а достаточно добавление строки "sleep сколько-то секунд" в файл /etc/init.d/nut
Сейчас у меня нет под рукой машины с линуксом, поэтому проверить не могу.
Пользователь решил продолжить мысль 31 Мая 2012, 17:55:58: