Прошло много времени и я решил выложить некоторые свои наработки к себе в блог, поделиться так сказать с народом. Поскольку часто нахожу решения, используя тот же google, в благодарность так сказать, выложу то, через что я прошёл, чтобы «следующим поколениям» было легче преодолеть этот путь.
Для начала для каждой APC создаём в /etc/apcupsd несколько поддиректорий (у меня например это «420» и «750», копируем в каждую все конфиги из каталога /etc/apcupsd . Далее в каждом из apcupsd.conf нужно поправить параметры подключения к УПСу и порт, на котором он будет висеть, чтобы в дальнейшем можно было прикрутить мониторилку на cgi скриптах (в ubuntu пакет для этого есть в репозиториях и называется apcupsd-cgi, если мне не изменяет память). Ну и самое важное — это создать два скрипта запуска при загрузке системы, для каждой УПСины соответственно свой. Приведу ниже код одного из них, который успешно работает у меня вот уже год.
#!/bin/sh ### BEGIN INIT INFO # Provides: apcupsd # Required-Start: $remote_fs $syslog # Required-Stop: $remote_fs $syslog # Should-Start: $local_fs # Should-Stop: $local_fs # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Starts apcupsd daemon # Description: apcupsd provides UPS power management for APC products. ### END INIT INFO 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) sleep 5 echo -n "Starting $NAME: " rm -f /etc/apcupsd/420/powerfail # if [ "`pidof apcupsd420`" = "" ] # then start-stop-daemon --start --pidfile $DAEMONPID --quiet --exec /sbin/apcupsd -- -f /etc/apcupsd/420/apcupsd.conf --pid-file $DAEMONPID echo "$DESC Successfully started." # # else # echo "" # echo "WARNING! $DESC already started! Stop daemon, then start it!" # exit 0 # fi ;; stop) echo -n "Stopping $NAME: " start-stop-daemon --stop --oknodo --pidfile $DAEMONPID || echo "Not Running." rm -f /var/run/apcupsd420.pid echo "$DESC Successfully stopped." ;; restart|force-reload) echo -n "Restarting $NAME: " start-stop-daemon --stop --oknodo --pidfile $DAEMONPID rm -f /var/run/apcupsd420.pid echo "$DESC Successfully stopped." sleep 3 start-stop-daemon --start --pidfile $DAEMONPID --quiet --exec /sbin/apcupsd -- -f /etc/apcupsd/420/apcupsd.conf --pid-file $DAEMONPID echo "$DESC Successfully started." ;; 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
В этом коде почти все переменные, в которых встречается «420» необходимо заменить на свои. Ну и далее знающие люди поймут, что с этим скриптом делать, конкретно, как пихнуть его в автозагрузку, чтобы всё это дело стартовало при загрузке системы. В противном случае пишите в КОММЕНТАРИИ, попытаюсь в рамках данной статьи разжевать это. 🙂
upd 06.04.15 — исправил скрипт, внешне он был совсем нерабочий — с html тегами и обрезанными строками. Никто в комментариях, к сожалению, об этом не сообщил.