Browse Source

nut: Make FSD really work

Forced shutdown of the UPS was not actually happening before
due to lack of specific commands doing the shutdown.  This
(and the nut-driver initscript) fix that.

Signed-off-by: Daniel F. Dickinson <cshored@thecshore.com>
lilik-openwrt-22.03
Daniel F. Dickinson 6 years ago
parent
commit
918a62f919
4 changed files with 44 additions and 2 deletions
  1. +1
    -0
      net/nut/Makefile
  2. +1
    -1
      net/nut/files/nut-monitor.init
  3. +1
    -1
      net/nut/files/nut_monitor
  4. +41
    -0
      net/nut/files/nutshutdown

+ 1
- 0
net/nut/Makefile View File

@ -169,6 +169,7 @@ define Package/nut-upsmon/install
$(INSTALL_DIR) $(1)/etc/init.d
$(INSTALL_BIN) ./files/nut-monitor.init $(1)/etc/init.d/nut-monitor
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/upsmon $(1)/usr/sbin/
$(INSTALL_BIN) ./files/nutshutdown $(1)/usr/sbin/nutshutdown
$(INSTALL_DIR) $(1)/etc/config
$(INSTALL_CONF) ./files/nut_monitor $(1)/etc/config/nut_monitor
ln -sf /var/etc/nut/upsmon.conf $(1)/etc/nut/upsmon.conf


+ 1
- 1
net/nut/files/nut-monitor.init View File

@ -15,7 +15,7 @@ nut_upsmon_conf() {
config_get val "$cfg" minsupplies 1
echo "MINSUPPLIES $val" >> $UPSMON_C
config_get val "$cfg" shutdowncmd "/sbin/halt"
config_get val "$cfg" shutdowncmd "/usr/sbin/nutshutdown"
echo "SHUTDOWNCMD \"$val\"" >> $UPSMON_C
config_get val "$cfg" notifycmd


+ 1
- 1
net/nut/files/nut_monitor View File

@ -1,7 +1,7 @@
#config upsmon 'upsmon'
# option runas run-as-user
# option minsupplies 1
# option shutdowncmd /sbin/halt
# option shutdowncmd '/usr/sbin/nutshutdown'
# option notifycmd /path/to/cmd
# list defaultnotify SYSLOG
# option pollfreq 5


+ 41
- 0
net/nut/files/nutshutdown View File

@ -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
}

Loading…
Cancel
Save