From 867ea959a216046a267e832ac07f8fcab99362f0 Mon Sep 17 00:00:00 2001 From: "Daniel F. Dickinson" Date: Sun, 28 Apr 2019 20:08:45 +0000 Subject: [PATCH 1/2] nut: Fix nutmon issues with init NUT's upsmon is rather peculiar in that it has a child process that runs as a regular user and a parent process that runs as root (in order to facilitate shutting down the device if needed). procd doesn't deal well with this and doing 'normal' procd stop / restart / etc results in the child process still hanging around but with not parent, which causes undesired behaviour. Therefore, add the use of 'upsmon -c stop' during process shutdown / restart in order to ensure that upsmon is actually fully stopped. Also fixes nut-monitor going into crashloop on network changes (due to trigger that restarted upsmon but failed due to orphan child from before restart). Signed-off-by: Daniel F. Dickinson --- net/nut/files/nut-monitor.init | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/net/nut/files/nut-monitor.init b/net/nut/files/nut-monitor.init index bc463d7f5..e57a2870b 100755 --- a/net/nut/files/nut-monitor.init +++ b/net/nut/files/nut-monitor.init @@ -148,7 +148,6 @@ nut_upsmon_add() { } build_config() { - local runas=nutmon mkdir -m 0750 -p "$(dirname "$UPSMON_C")" config_load nut_monitor @@ -193,6 +192,7 @@ interface_triggers() { } start_service() { + local runas=nutmon local havemon havems build_config @@ -210,16 +210,9 @@ start_service() { return 0 } -restart() { - trap '' TERM - stop "$@" - sleep 2 - trap - TERM - start "$@" -} - reload_service() { if pgrep upsmon >/dev/null 2>/dev/null; then + local runas=nutmon build_config /usr/sbin/upsmon -c reload else @@ -227,6 +220,10 @@ reload_service() { fi } +stop_service() { + upsmon -c stop +} + service_triggers() { config_load nut_monitor interface_triggers "add_trigger" From c25b7510415ff2327341e9dc4fcc1817a7949b8e Mon Sep 17 00:00:00 2001 From: "Daniel F. Dickinson" Date: Sun, 28 Apr 2019 20:10:27 +0000 Subject: [PATCH 2/2] nut: Actually do FSD when required The code was all there but the call do the function containing it was missing, so call the function so that forced (UPS) shutdown occurs on a battery critical or manually requested FSD situation. Signed-off-by: Daniel F. Dickinson --- net/nut/Makefile | 2 +- net/nut/files/nutshutdown | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/net/nut/Makefile b/net/nut/Makefile index 555f97357..9f84ed26e 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:=15 +PKG_RELEASE:=16 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 8400c9a6e..86fe01bb9 100755 --- a/net/nut/files/nutshutdown +++ b/net/nut/files/nutshutdown @@ -47,3 +47,5 @@ do_fsd() { poweroff fi } + +do_fsd