From cb06f0250425d20b9d600b0a6e9002a1c5bc5a75 Mon Sep 17 00:00:00 2001 From: "Daniel F. Dickinson" Date: Sun, 6 Jan 2019 18:32:52 -0500 Subject: [PATCH] nut: Prevent FSD when not specifically requested Under certain circumstances nutshutdown was causing a forced shutdown of the UPS even though killpower was not indicated. Prevent that. Also clarify the logic for powering off server by avoiding && || chains. Signed-off-by: Daniel F. Dickinson --- net/nut/Makefile | 2 +- net/nut/files/nutshutdown | 17 ++++++++++------- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/net/nut/Makefile b/net/nut/Makefile index 985feae5d..5dd635c27 100644 --- a/net/nut/Makefile +++ b/net/nut/Makefile @@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=nut PKG_VERSION:=2.7.4 -PKG_RELEASE:=13 +PKG_RELEASE:=14 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=http://www.networkupstools.org/source/2.7/ diff --git a/net/nut/files/nutshutdown b/net/nut/files/nutshutdown index e4fd962cd..ad1cda2d3 100755 --- a/net/nut/files/nutshutdown +++ b/net/nut/files/nutshutdown @@ -16,11 +16,14 @@ 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 ] && { +if [ -f /var/run/killpower ]; then + if [ -f /etc/config/nut_server ]; then config_load nut_server # Can't FSD unless drivers are stopped @@ -33,9 +36,9 @@ shutdown_instance() { sleep 120 # Uh-oh failed to poweroff UPS reboot -f - } || { + else poweroff - } -} || { + fi +else poweroff -} +fi