Anton E. Panchenko
2009-Jun-19 01:02 UTC
[Nut-upsuser] UPS does not want to power off itself
Greetings!
I have successfully installed and configured nut package. All i want now
is to power off ups. If i run upsmon -c fsd as root - everything goes
fine, system and ups gracefully shutting down. If i unplug power cable
from an ups, then system is down, but ups still on load. Any help would
be appreciated.
Debian Lenny x86
ups.conf
[ippon]
driver = megatec
port = /dev/ttyS0
desc = "Ippon Smart Power Pro 1000
upsd.conf
ACL all 0.0.0.0/0
ACL localhost 127.0.0.1/32
ACCEPT localhost
REJECT all
upsd.users
[monuser]
password = pass
allowfrom = localhost
upsmon master
actions = set
instcmds = ALL
upsmon.conf
MONITOR ippon at localhost 1 monuser pass master
MINSUPPLIES 1
SHUTDOWNCMD "/sbin/shutdown -h now"
NOTIFYCMD /sbin/upssched
POLLFREQ 5
POLLFREQALERT 5
HOSTSYNC 15
DEADTIME 15
POWERDOWNFLAG /etc/killpower
NOTIFYFLAG ONLINE SYSLOG+WALL
NOTIFYFLAG ONBATT SYSLOG+WALL+EXEC
NOTIFYFLAG LOWBATT SYSLOG+WALL+EXEC
NOTIFYFLAG FSD SYSLOG+WALL
NOTIFYFLAG COMMOK SYSLOG+WALL
NOTIFYFLAG COMMBAD SYSLOG+WALL+EXEC
NOTIFYFLAG SHUTDOWN SYSLOG+WALL
NOTIFYFLAG REPLBATT SYSLOG+WALL+EXEC
NOTIFYFLAG NOCOMM SYSLOG+WALL+EXEC
NOTIFYFLAG NOPARENT SYSLOG+WALL
RBWARNTIME 43200
NOCOMMWARNTIME 300
FINALDELAY 5
upsshed.conf
CMDSCRIPT /etc/nut/upssched-cmd
PIPEFN /var/run/nut/upssched.pipe
LOCKFN /var/run/nut/upssched.lock
AT ONBATT ippon at localhost START-TIMER fsd 30 #for testing
AT ONLINE ippon at localhost CANCEL-TIMER fsd
upsshed-cmd
#!/bin/sh
MSG="The UPS is running on battery about 2 minutes, doing force
shutdown"
case $1 in
fsd)
logger -t upssched-cmd $MSG
/sbin/upsmon -c fsd
;;
*)
logger -t upssched-cmd "ERROR!! $0 Unrecognized command: $1"
;;
esac
crw-rw---- 1 root nut 4, 64 ??? 19 11:58 ttyS0
crw-rw---- 1 root nut 4, 65 ??? 19 11:41 ttyS1
crw-rw---- 1 root dialout 4, 66 ??? 19 11:41 ttyS2
crw-rw---- 1 root dialout 4, 67 ??? 19 11:41 ttyS3
wcc:/var/run/nut# ls -la
????? 20
drwxrwx--- 2 root nut 4096 ??? 19 11:41 .
drwxr-xr-x 5 root root 4096 ??? 19 11:41 ..
srw-rw---- 1 nut nut 0 ??? 19 11:41 megatec-ippon
-rw-r--r-- 1 nut nut 5 ??? 19 11:41 megatec-ippon.pid
-rw-r--r-- 1 nut nut 5 ??? 19 11:41 upsd.pid
-rw-r--r-- 1 root root 5 ??? 19 11:41 upsmon.pid
wcc:/var/run/nut# cat /etc/init.d/halt | grep -v "#"
NETDOWN=yes
PATH=/sbin:/usr/sbin:/bin:/usr/bin
[ -f /etc/default/halt ] && . /etc/default/halt
. /lib/lsb/init-functions
do_stop () {
if [ "$INIT_HALT" = "" ]
then
case "$HALT" in
[Pp]*)
INIT_HALT=POWEROFF
;;
[Hh]*)
INIT_HALT=HALT
;;
*)
INIT_HALT=POWEROFF
;;
esac
fi
if (test -f /etc/killpower)
then
echo "Killing the power, bye!"
/sbin/upsdrvctl shutdown
sleep 120
fi
if [ "$INIT_HALT" = "POWEROFF" ] && [ -x
/etc/init.d/ups-monitor ]
then
/etc/init.d/ups-monitor poweroff
fi
hddown="-h"
if grep -qs '^md.*active' /proc/mdstat
then
hddown=""
fi
poweroff="-p"
if [ "$INIT_HALT" = "HALT" ]
then
poweroff=""
fi
netdown="-i"
if [ "$NETDOWN" = "no" ]; then
netdown=""
fi
log_action_msg "Will now halt"
halt -d -f $netdown $poweroff $hddown
}
case "$1" in
start)
;;
restart|reload|force-reload)
echo "Error: argument '$1' not supported" >&2
exit 3
;;
stop)
do_stop
;;
*)
echo "Usage: $0 start|stop" >&2
exit 3
;;
esac
:
Citeren "Anton E. Panchenko" <pae op chernigovka.org>: [...]> upsshed-cmd > #!/bin/sh > MSG="The UPS is running on battery about 2 minutes, doing force shutdown" > > case $1 in > fsd) > logger -t upssched-cmd $MSG > /sbin/upsmon -c fsd > ;; > *) > logger -t upssched-cmd "ERROR!! $0 Unrecognized command: $1" > ;; > esacAssuming the message is logged (and you thereby having confirmed that indeed the 'fsd' timer is elapsed, the problem is that upssched will run with the same UID as upsmon (that started this timer). In that case, the command /sbin/upsmon -c fsd will also run as this user. So in order to test this, you must make sure that the above command when running as a non-privileged user will shutdown your system or you must run upsmon as a privileged user. You might be able to do something similar by allowing this user to use 'sudo' for just this command. Choose your poison. Best regards, Arjen -- Please keep list traffic on the list