Приветствую всех. Недавно приобрел вторую апсину и поставил перед собой задачу получать инфу с обеих через apcupsd. Собственно с того дня и мучаюсь. 3 полных рабочих дня просидел, ковыряясь со скриптами запуска для apcupsd. Также за это время освоил init.d, очередность запуска сервисов и прочие милые вещи, доселе незнакомые мне. Теперь собственно проблема. Имею apc 420 законнекченную через com и 750 через usb. По отдельности (минуя сервис) через /sbin/apcupsd -f /etc/apcupsd/420/apcupsd.conf все работает (кстати много разных методов пробовал, остановился на том, что создал отдельные папки для каждой апсины), также мониторится через CGI скрипт и одновременно запускается и 420 и 750. ( http://188.32.138.198/cgi-bin/multimon.cgi здесь иногда бывает видно ) При запуске системы автоматически запускается сервис apcupsd420. Запускаю повторно 420:
sudo service apcupsd420 start
Starting UPS 420 management:
A copy of the daemon is still running. If you just stopped it,
please wait about 5 seconds for it to shut down.
Вроде всё ок. Пытаюсь её остановить:
sudo service apcupsd420 stop
Stopping UPS 420 management: No process in pidfile '/var/run/apcupsd420.pid' found running; none killed.
apcupsd420.
sudo service apcupsd750 start
Starting UPS 750 management: ****@gladsas-server:~$
Скрипт запуска перековырял вдоль и поперек, комбинируя разные варианты из инета. Для ясности приведу окончательный его вид:
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/sbin/apcupsd
DAEMONPID=/var/run/apcupsd420.pid
CONFIG=/etc/default/apcupsd
NAME=apcupsd420
DESC="UPS 420 management"
test -x $DAEMON || exit 0
test -e $CONFIG || exit 0
set -e
. $CONFIG
if [ "x$ISCONFIGURED" != "xyes" ] ;
then
echo "Please check your configuration ISCONFIGURED in /etc/default/apcupsd"
exit 0
fi
case "$1" in
start)
echo -n "Starting $DESC: "
rm -f /etc/apcupsd/420/powerfail
if [ "`pidof apcupsd`" = "" ]
then
start-stop-daemon --start --quiet --pidfile $DAEMONPID --exec /sbin/apcupsd -- -f /etc/apcupsd/420/apcupsd.conf
echo "$NAME."
else
echo ""
echo "A copy of the daemon is still running. If you just stopped it,"
echo "please wait about 5 seconds for it to shut down."
exit 0
fi
;;
stop)
echo -n "Stopping $DESC: "
start-stop-daemon --stop --oknodo --pidfile $DAEMONPID || echo "Not Running."
rm -f /var/run/apcupsd420.pid
echo "$NAME."
;;
restart|force-reload)
echo -n "Restarting $DESC: "
start-stop-daemon --stop --quiet --pidfile $DAEMONPID
sleep 10
start-stop-daemon --start --quiet --pidfile $DAEMONPID --exec $DAEMON
echo "apcupsd."
;;
status)
#/sbin/apcaccess status
$APCACCESS status 127.0.0.1:3551
;;
*)
N=/etc/init.d/$NAME
echo "Usage: $N {start|stop|restart|force-reload}" >&2
exit 1
;;
esac
exit 0
Для 750 скрипт такой же, просто 3 циферки изменены там где надо. ЗЫ если что-то не убрал под спойлер, тапком не бить.
Только что заметил ещё одну интересную особенность: в /var/run у меня файлик apcupsd.pid, а того что я указывал в скрипте запуска и конфигах (*420.pid или *750.pid) я не вижу. Очень странно.