Как настроить hibernate с помощью apcupsd?
Есть компьютер с SL6.3, который 24/7 должен молотить всякую чушь. Чтобы чушь не пожрал хомяк блэкаута, он подключен через USB к BackUPS-1100, которым управляет apcupsd-3.14.10. Надо чтобы при ситуации "отрубили свет" машина уходила в гибернейт.
Сам по себе гибернейт работает нормально, общение демона с упской тоже налажено, т.е. при отсутствии файла doshutdown в /etc/apcupsd машина корректно вырубается через указанный в apcupsd.conf таймаут.
Для настройки гибернейта воспользовался статьей на
АрчВики. Создал в /usr/local/bin файл с таким содержимым:
#!/bin/bash
/usr/sbin/pm-hibernate
exit 99
В /etc/apcupsd завел на него симлинк doshutdown. В /etc/pm/sleep.d/ положил файл 99apcupsd:
#!/bin/bash
case $1 in
hibernate)
# See if this is a powerfail situation.
if [ -f /etc/apcupsd/powerfail ]; then
/etc/init.d/apcupsd stop
killall -TERM apcupsd
echo
echo "!!! Killpower !!!"
sleep 5
/etc/apcupsd/apccontrol killpower
sleep 5
fi
;;
thaw)
# Restart apcupsd to hopefully forget hibernate episode
echo
echo "Restarting apcupsd after thaw."
echo
killall -TERM apcupsd
/etc/init.d/apcupsd start
;;
esac
после перезапуска apcupsd, при отключении питания начинаются сыпаться сообщения: "Battery time limit exceeded on UPS BU1100. Doing shutdown.", "Power failure on UPS BU1100. Running on batteries." и "Continuing with shutdown." И все. Время идет, а батарея разряжается. Включаем питание. После всей процедуры в apcupsd.events остаются записи кэпа:
2012-11-09 16:54:22 +1000 Power failure.
2012-11-09 16:54:24 +1000 Reached run time limit on batteries.
2012-11-09 16:54:24 +1000 Initiating system shutdown!
2012-11-09 16:54:24 +1000 User logins prohibited
2012-11-09 16:54:27 +1000 Running on UPS batteries.
2012-11-09 16:55:54 +1000 Mains returned. No longer on UPS batteries.
2012-11-09 16:55:54 +1000 Power is back. UPS running on mains.
2012-11-09 16:55:54 +1000 Allowing logins
Содержание apcupsd.conf:
## apcupsd.conf v1.1 ##
# ========= General configuration parameters ============
UPSNAME BU1100
UPSCABLE usb
UPSTYPE usb
DEVICE
#POLLTIME 60
LOCKFILE /var/lock
SCRIPTDIR /etc/apcupsd
PWRFAILDIR /etc/apcupsd
NOLOGINDIR /etc
# ======== Configuration parameters used during power failures ==========
ONBATTERYDELAY 5
#BATTERYLEVEL 5
#MINUTES 3
TIMEOUT 1
ANNOY 0
NOLOGON disable
KILLDELAY 180
# ==== Configuration statements for Network Information Server ====
NETSERVER off
#NISIP 0.0.0.0
#NISPORT 3551
EVENTSFILE /var/log/apcupsd.events
EVENTSFILEMAX 10
# ========== Configuration statements used if sharing =============
UPSCLASS standalone
UPSMODE disable
# ===== Configuration statements to control apcupsd system logging ========
STATTIME 0
STATFILE /var/log/apcupsd.status
LOGSTATS on
DATATIME 0
Что я делаю не так?