|
|
@ -0,0 +1,41 @@ |
|
|
|
#!/bin/sh |
|
|
|
# |
|
|
|
# This is free software, licensed under the GNU General Public License v2. |
|
|
|
# See /LICENSE for more information. |
|
|
|
# |
|
|
|
|
|
|
|
. /lib/functions.sh |
|
|
|
|
|
|
|
mount -o remount,ro /overlay /overlay |
|
|
|
mount -o remount,ro / / |
|
|
|
|
|
|
|
stop_instance() { |
|
|
|
/etc/init.d/nut-server stop "$1" |
|
|
|
} |
|
|
|
|
|
|
|
shutdown_instance() { |
|
|
|
local cfg="$1" |
|
|
|
config_get driver "$cfg" driver "usbhid-ups" |
|
|
|
/lib/nut/${driver} -a "$cfg" -k |
|
|
|
} |
|
|
|
|
|
|
|
[ -f /var/run/killpower ] && { |
|
|
|
[ -f /etc/config/nut_server ] && { |
|
|
|
config_load nut_server |
|
|
|
|
|
|
|
# Can't FSD unless drivers are stopped |
|
|
|
config_foreach stop_instance driver |
|
|
|
# Driver will wait 'offdelay' before shutting down |
|
|
|
config_foreach shutdown_instance driver |
|
|
|
# So this can happen |
|
|
|
poweroff |
|
|
|
# And just in case |
|
|
|
sleep 120 |
|
|
|
# Uh-oh failed to poweroff UPS |
|
|
|
reboot -f |
|
|
|
} || { |
|
|
|
poweroff |
|
|
|
} |
|
|
|
} || { |
|
|
|
poweroff |
|
|
|
} |