# 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
+
+ # 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
- poweroff
- # And just in case
- sleep 120
- # Uh-oh failed to poweroff UPS
- reboot -f
- } || {
+ . ${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
- }
-} || {
- poweroff
+ fi
}
+
+do_fsd