nut: Handle FSD properly
Make sure we force shutdown of UPS only when we should, and when we should that shutdown happens. Signed-off-by: Daniel F. Dickinson <cshored@thecshore.com>
This commit is contained in:
parent
a2ab989c12
commit
361e6aaaab
1 changed files with 33 additions and 23 deletions
|
@ -4,11 +4,6 @@
|
|||
# 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"
|
||||
}
|
||||
|
@ -16,26 +11,41 @@ stop_instance() {
|
|||
shutdown_instance() {
|
||||
local cfg="$1"
|
||||
config_get driver "$cfg" driver "usbhid-ups"
|
||||
/lib/nut/${driver} -a "$cfg" -k
|
||||
|
||||
# Only FSD if killpower was indicated
|
||||
if [ -f /var/run/killpower ]; then
|
||||
/lib/nut/"${driver}" -a "$cfg" -k
|
||||
fi
|
||||
}
|
||||
|
||||
[ -f /var/run/killpower ] && {
|
||||
[ -f /etc/config/nut_server ] && {
|
||||
config_load nut_server
|
||||
do_fsd() {
|
||||
if [ -f /var/run/killpower ]; then
|
||||
# Only make FS readonly if we are doing an FSD
|
||||
mount -o remount,ro /overlay /overlay
|
||||
mount -o remount,ro / /
|
||||
|
||||
# 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
|
||||
. ${IPKG_INSTOOT}/lib/functions.sh
|
||||
|
||||
if [ -f /etc/config/nut_server ]; then
|
||||
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
|
||||
rm -f /var/run/killpower
|
||||
poweroff
|
||||
# And just in case
|
||||
sleep 120
|
||||
# Uh-oh failed to poweroff UPS
|
||||
reboot -f
|
||||
else
|
||||
poweroff
|
||||
fi
|
||||
else
|
||||
poweroff
|
||||
# And just in case
|
||||
sleep 120
|
||||
# Uh-oh failed to poweroff UPS
|
||||
reboot -f
|
||||
} || {
|
||||
poweroff
|
||||
}
|
||||
} || {
|
||||
poweroff
|
||||
fi
|
||||
}
|
||||
|
||||
do_fsd
|
||||
|
|
Loading…
Reference in a new issue