#!/bin/sh # # This is free software, licensed under the GNU General Public License v2. # See /LICENSE for more information. # stop_instance() { /etc/init.d/nut-server stop "$1" } shutdown_instance() { local cfg="$1" config_get driver "$cfg" driver "usbhid-ups" # Only FSD if killpower was indicated if [ -f /var/run/killpower ]; then /lib/nut/"${driver}" -a "$cfg" -k fi } 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 / / . ${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 fi } do_fsd