Compare commits

..

44 commits

Author SHA1 Message Date
Orion Poplawski
98284f631b Add missing || : to preinstall scriptlet (rhbz#241964) 2025-12-05 18:34:11 -07:00
Michal Hlavinka
77706a32be based on PR#18 by Orion Poplawski
Build NUT-Monitor and ship in separate nut-monitor package (rhbz#2359149)
Move UPS drivers into /usr/libexec/nut
2025-09-30 12:11:02 +02:00
Python Maint
069b76a3a8 Rebuilt for Python 3.14.0rc3 bytecode 2025-09-19 12:33:37 +02:00
Python Maint
7164fc2d6d Rebuilt for Python 3.14.0rc2 bytecode 2025-08-15 13:02:57 +02:00
Michal Hlavinka
4870df85c6 updated to 2.8.4 (#2387244) 2025-08-14 12:13:59 +02:00
Fedora Release Engineering
cc9daebf1e Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild 2025-07-24 23:02:13 +00:00
Python Maint
38f34fb51d Rebuilt for Python 3.14 2025-06-02 19:58:22 +02:00
Michal Hlavinka
1f502ae93a rename rhino to nutdrv_rhino to prevent file conflict (rhbz#2367057) 2025-05-21 13:43:14 +02:00
Michal Hlavinka
9867e18241 add needed buildrequire jq 2025-04-29 17:37:37 +02:00
Michal Hlavinka
760ad72a05 updated to 2.8.3 (#2352734) 2025-04-29 16:46:04 +02:00
Zbigniew Jędrzejewski-Szmek
91e5a19370 Add sysusers.d config file to allow rpm to create users/groups automatically
See https://fedoraproject.org/wiki/Changes/RPMSuportForSystemdSysusers.

-cgi requires -client, so it doesn't need it's copy of the file.

setup Provides group(dialout) and group(tty), but let's add the Requires
for clarity.
2025-02-11 16:33:00 +01:00
Michal Hlavinka
ce21c14155 add back git snapshot part of release number 2025-01-31 21:00:34 +01:00
Michal Hlavinka
7d3c0ad65d fix ftbfs, make it build with unified bin/sbin
fix ftbfs, make it build with unified bin/sbin
fix ftbfs, make it build with unified bin/sbin
fix ftbfs, make it build with unified bin/sbin
fix ftbfs, make it build with unified bin/sbin
2025-01-29 00:09:31 +01:00
Fedora Release Engineering
b278271309 Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild 2025-01-17 20:31:55 +00:00
Orion Poplawski
3cb725a9a6 Add BR systemd-devel to enable systemd notification support 2024-11-15 16:08:05 -07:00
Fedora Release Engineering
02a191e840 Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild 2024-07-18 19:52:32 +00:00
Michal Hlavinka
810e8f234e fix python FTBFS, uses git snapshot as of 20240703 with PR 2505 2024-07-03 12:59:09 +02:00
Python Maint
59f9744317 Rebuilt for Python 3.13 2024-06-07 08:33:13 +02:00
Michal Hlavinka
ada5bd73a7 updated to 2.8.2(2272586) 2024-04-03 11:56:12 +02:00
Fedora Release Engineering
17e960e140 Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild 2024-01-25 09:32:03 +00:00
Fedora Release Engineering
03a2bff29b Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild 2024-01-21 10:02:08 +00:00
Michal Hlavinka
9b811d0688 fix gpio check conditions 2023-12-06 12:29:26 +01:00
Orion Poplawski
0089d11277 Re-add nut.target to nut-client (bz#2156504) 2023-11-30 11:52:01 -07:00
Michal Hlavinka
f74346c47d libgpiod v2 is not compatible, disable for now 2023-11-02 11:55:02 +01:00
Michal Hlavinka
182c96a020 updated to 2.8.1(2247337) 2023-11-01 22:31:34 +01:00
Michal Hlavinka
f9d1f583d7 spec cleanup, based on PR#14 by Orion Poplawski 2023-10-10 00:11:39 +02:00
Fedora Release Engineering
2572132723 Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2023-07-20 17:01:05 +00:00
Orion Poplawski
d4f6d893fc Drop BR on /usr/bin/pathfix.py 2023-06-14 20:56:01 -06:00
Python Maint
ea13be436a Rebuilt for Python 3.12 2023-06-13 20:23:11 +02:00
Michal Hlavinka
d7132ee907 use new patch macro format, with epel compatibility 2023-05-03 12:26:49 +02:00
Michal Hlavinka
64fdb72282 update license tag format (SPDX migration) for https://fedoraproject.org/wiki/Changes/SPDX_Licenses_Phase_1 2023-04-26 10:57:21 +02:00
Michal Hlavinka
dc7efebac0 add nut-xml to nut recommends (#2151810) 2023-02-14 22:19:17 +01:00
Fedora Release Engineering
aad68762c3 Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2023-01-19 21:54:34 +00:00
Michal Hlavinka
8debbe8226 move upslog to nut-client, some small spec file changes (#2156504) 2023-01-04 13:12:09 +01:00
Michal Hlavinka
4daa893965 use https for urls 2022-12-06 22:31:17 +01:00
Charles R. Anderson
0a29e563e3 Fix STATEPATH/PIDPATH/ALTPIDPATH directory creation and ownership
use piddir for specifying restart_flag location
use piddir for specifying configure --with-statepath/pidpath/altpidpath
add nut-2.8.0-piddir-owner.patch for upstream tmpfiles config creation to not append /nut and always use owner root
update nut-2.6.3-tmpfiles.patch to use correct tmpfiles config file name
remove unused downstream tmpfiles source and code
2022-12-03 12:24:08 -05:00
Florian Weimer
6db1d50203 Port configure script to C99
Related to:

  <https://fedoraproject.org/wiki/Changes/PortingToModernC>
  <https://fedoraproject.org/wiki/Toolchain/PortingToModernC>
2022-11-27 22:18:05 +01:00
Michal Hlavinka
670632e3fd update pid path 2022-08-31 12:36:18 +02:00
Fedora Release Engineering
c1478deaf5 Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2022-07-22 00:57:20 +00:00
Python Maint
8f6b572231 Rebuilt for Python 3.11 2022-06-13 14:51:42 +02:00
Michal Hlavinka
a136d9db58 drop unused solaris init script pulling unnecessary dependency 2022-06-07 16:14:41 +02:00
Michal Hlavinka
f68641b430 add missing BR 2022-06-07 11:50:21 +02:00
Michal Hlavinka
1e27db6337 change libusb reguirement to libusb1 2022-06-07 10:09:17 +02:00
Michal Hlavinka
4868536690 updated to 2.8.0 2022-06-06 22:39:25 +02:00
12 changed files with 314 additions and 872 deletions

5
.gitignore vendored
View file

@ -10,3 +10,8 @@ nut-2.4.3.tar.gz
/nut-2.7.3.tar.gz
/nut-2.7.4.tar.gz
/nut-2.8.0.tar.gz
/nut-2.8.1.tar.gz
/nut-2.8.2.tar.gz
/nut-2.8.2.1.tar.gz
/nut-2.8.3.tar.gz
/nut-2.8.4.tar.gz

View file

@ -28,5 +28,5 @@ do
echo "#define $( echo "$l" | tr '[a-z]-' '[A-Z]_')_PATH \"$rp\""
done
VINFO=$(sed -e '/version-info/!d' -e 's/#.*$//' -e 's/^.*-version-info//' -e 's/\\$//' -e 's/[[:space:]]//g' clients/Makefile)
VINFO=$(sed -e '/version-info/!d' -e 's/#.*$//' -e 's/^.*-version-info//' -e 's/[[:space:]]//g' -e 's/\\//g' clients/Makefile)
echo "#define LIBUPSCLIENT_PATH \"libupsclient.so.$(( ${VINFO%%:*}-${VINFO##*:} ))\""

View file

@ -1,12 +0,0 @@
diff -up nut-2.7.3/configure.ac.quickfix nut-2.7.3/configure.ac
--- nut-2.7.3/configure.ac.quickfix 2015-04-23 12:05:21.219228670 +0200
+++ nut-2.7.3/configure.ac 2015-04-23 12:05:21.230228646 +0200
@@ -1065,7 +1065,7 @@ dnl Override installation directory, wit
dnl prefix. This is needed for 'distcheck*' targets, otherwise
dnl files will try to get intalled to the actual system directories
if test -n "${systemdsystemunitdir}"; then
- systemdsystemshutdowndir="${libdir}/systemd/system-shutdown"
+ systemdsystemshutdowndir="/lib/systemd/system-shutdown"
AC_MSG_RESULT(using ${systemdsystemunitdir})
else
AC_MSG_RESULT(no)

View file

@ -1,18 +1,18 @@
diff -up nut-2.8.1/clients/upsmon.c.rmpidf nut-2.8.1/clients/upsmon.c
--- nut-2.8.1/clients/upsmon.c.rmpidf 2023-11-01 10:10:03.039782733 +0100
+++ nut-2.8.1/clients/upsmon.c 2023-11-01 10:14:48.824806113 +0100
@@ -3059,6 +3059,7 @@ int main(int argc, char *argv[])
diff -up nut-2.8.2.1/clients/upsmon.c.rmpidf nut-2.8.2.1/clients/upsmon.c
--- nut-2.8.2.1/clients/upsmon.c.rmpidf 2024-07-03 12:18:04.788135176 +0200
+++ nut-2.8.2.1/clients/upsmon.c 2024-07-03 12:19:33.164964473 +0200
@@ -3309,6 +3309,7 @@ int main(int argc, char *argv[])
upslogx(LOG_INFO, "Signal %d: exiting", exit_flag);
upsnotify(NOTIFY_STATE_STOPPING, "Signal %d: exiting", exit_flag);
upsmon_cleanup();
+ cleanpid(prog);
upsdebugx(1, "Finally exiting due to signal %d", exit_flag);
exit(EXIT_SUCCESS);
}
diff -up nut-2.8.1/common/common.c.rmpidf nut-2.8.1/common/common.c
--- nut-2.8.1/common/common.c.rmpidf 2023-10-30 00:02:33.000000000 +0100
+++ nut-2.8.1/common/common.c 2023-11-01 10:10:03.040782744 +0100
@@ -519,6 +519,20 @@ pid_t parsepid(const char *buf)
diff -up nut-2.8.2.1/common/common.c.rmpidf nut-2.8.2.1/common/common.c
--- nut-2.8.2.1/common/common.c.rmpidf 2024-07-03 12:14:56.000000000 +0200
+++ nut-2.8.2.1/common/common.c 2024-07-03 12:18:04.788135176 +0200
@@ -1338,6 +1338,20 @@ pid_t parsepid(const char *buf)
return pid;
}
@ -33,10 +33,10 @@ diff -up nut-2.8.1/common/common.c.rmpidf nut-2.8.1/common/common.c
/* open pidfn, get the pid, then send it sig
* returns negative codes for errors, or
* zero for a successfully sent signal
diff -up nut-2.8.1/include/common.h.rmpidf nut-2.8.1/include/common.h
--- nut-2.8.1/include/common.h.rmpidf 2023-10-24 10:45:21.000000000 +0200
+++ nut-2.8.1/include/common.h 2023-11-01 10:10:03.040782744 +0100
@@ -211,6 +211,9 @@ void chroot_start(const char *path);
diff -up nut-2.8.2.1/include/common.h.rmpidf nut-2.8.2.1/include/common.h
--- nut-2.8.2.1/include/common.h.rmpidf 2024-07-03 12:14:56.000000000 +0200
+++ nut-2.8.2.1/include/common.h 2024-07-03 12:18:04.788135176 +0200
@@ -262,6 +262,9 @@ int checkprocname(pid_t pid, const char
/* write a pid file - <name> is a full pathname *or* just the program name */
void writepid(const char *name);
@ -46,10 +46,10 @@ diff -up nut-2.8.1/include/common.h.rmpidf nut-2.8.1/include/common.h
/* parses string buffer into a pid_t if it passes
* a few sanity checks; returns -1 on error */
pid_t parsepid(const char *buf);
diff -up nut-2.8.1/server/upsd.c.rmpidf nut-2.8.1/server/upsd.c
--- nut-2.8.1/server/upsd.c.rmpidf 2023-11-01 10:10:03.040782744 +0100
+++ nut-2.8.1/server/upsd.c 2023-11-01 10:15:57.176529218 +0100
@@ -2137,5 +2137,6 @@ int main(int argc, char **argv)
diff -up nut-2.8.2.1/server/upsd.c.rmpidf nut-2.8.2.1/server/upsd.c
--- nut-2.8.2.1/server/upsd.c.rmpidf 2024-07-03 12:14:56.000000000 +0200
+++ nut-2.8.2.1/server/upsd.c 2024-07-03 12:18:04.789135186 +0200
@@ -2304,5 +2304,6 @@ int main(int argc, char **argv)
upsnotify(NOTIFY_STATE_STOPPING, "Signal %d: exiting", exit_flag);
ssl_cleanup();

View file

@ -1,40 +0,0 @@
diff -up nut-2.8.0/scripts/python/app/NUT-Monitor-py3qt5.in.unreachable nut-2.8.0/scripts/python/app/NUT-Monitor-py3qt5.in
--- nut-2.8.0/scripts/python/app/NUT-Monitor-py3qt5.in.unreachable 2022-05-09 17:20:11.629621005 +0200
+++ nut-2.8.0/scripts/python/app/NUT-Monitor-py3qt5.in 2022-05-09 17:20:52.674024537 +0200
@@ -693,6 +693,11 @@ along with this program. If not, see <h
self.gui_status_notification( _("Device '%s' not found on server") % self.__current_ups, "warning.png" )
return
+ if not self.__ups_handler.CheckUPSAvailable( self.__current_ups ):
+ self.gui_status_message( _("UPS '{0}' is not reachable").format( self.__current_ups ) )
+ self.gui_status_notification( _("UPS '{0}' is not reachable").format( self.__current_ups ), "warning.png" )
+ return
+
self.__connected = True
self.__widgets["ups_connect"].hide()
self.__widgets["ups_disconnect"].show()
diff -up nut-2.8.0/scripts/python/module/PyNUT.py.in.unreachable nut-2.8.0/scripts/python/module/PyNUT.py.in
--- nut-2.8.0/scripts/python/module/PyNUT.py.in.unreachable 2022-05-09 17:20:32.100323526 +0200
+++ nut-2.8.0/scripts/python/module/PyNUT.py.in 2022-05-09 17:21:35.505402117 +0200
@@ -170,6 +170,21 @@ available vars.
return( ups_vars )
+ def CheckUPSAvailable( self, ups="") :
+ """ Check whether UPS is reachable
+
+Just tries to contact UPS with safe command.
+The result is True (rechable) or False (unreachable)
+ """
+ self.__srv_handler.write( "LIST CMD %s\n" % ups )
+ result = self.__srv_handler.read_until( "\n" )
+ if result != "BEGIN LIST CMD %s\n" % ups :
+ return False
+
+ self.__srv_handler.read_until( "END LIST CMD %s\n" % ups )
+ return True
+
+
def GetUPSCommands( self, ups="" ) :
""" Get all available commands for the specified UPS

23
nut-2.8.3-rhinoname.patch Normal file
View file

@ -0,0 +1,23 @@
diff -up nut-2.8.4-build/nut-2.8.4/drivers/Makefile.am.rhinoname nut-2.8.4-build/nut-2.8.4/drivers/Makefile.am
--- nut-2.8.4-build/nut-2.8.4/drivers/Makefile.am.rhinoname 2025-08-14 11:08:48.763700333 +0200
+++ nut-2.8.4-build/nut-2.8.4/drivers/Makefile.am 2025-08-14 11:29:43.803846801 +0200
@@ -74,7 +74,7 @@ NUTSW_DRIVERLIST = $(NUTSW_DRIVERLIST_DU
SERIAL_DRIVERLIST = al175 bcmxcp belkin belkinunv bestfcom \
bestfortress bestuferrups bestups etapro everups \
gamatronic genericups isbmex liebert liebert-esp2 liebert-gxe masterguard metasys \
- mge-utalk microdowell microsol-apc mge-shut nutdrv_hashx oneac optiups powercom powervar_cx_ser rhino \
+ mge-utalk microdowell microsol-apc mge-shut nutdrv_hashx oneac optiups powercom powervar_cx_ser nutdrv_rhino \
safenet nutdrv_siemens-sitop solis tripplite tripplitesu upscode2 victronups powerpanel \
blazer_ser ivtscd apcsmart apcsmart-old riello_ser sms_ser bicker_ser ve-direct
if HAVE_LINUX_SERIAL_H
@@ -198,8 +198,8 @@ powerpanel_SOURCES = powerpanel.c powerp
powerpanel_LDADD = $(LDADD) -lm
powervar_cx_ser_SOURCES = powervar_cx_ser.c powervar_cx.c
powervar_cx_ser_CFLAGS = $(AM_CFLAGS) -DPVAR_SERIAL=1
-rhino_SOURCES = rhino.c
-rhino_LDADD = $(LDADD) -lm
+nutdrv_rhino_SOURCES = rhino.c
+nutdrv_rhino_LDADD = $(LDADD) -lm
safenet_SOURCES = safenet.c
nutdrv_siemens_sitop_SOURCES = nutdrv_siemens_sitop.c
solis_SOURCES = solis.c

View file

@ -1,60 +0,0 @@
Fix several issues with the AX_C_PRINTF_STRING_NULL check:
Adjust quoting in the AX_C_PRINTF_STRING_NULL definition. Switch to
strstr from strcasestr (a GNU extension, requires -D_GNU_SOURCE)
and include <string.h> instead of <strings.h>. Add missing braces
and parentheses. Use double-quote for string literals.
Submitted upstream: <https://github.com/networkupstools/nut/pull/1720>
diff --git a/m4/ax_c_pragmas.m4 b/m4/ax_c_pragmas.m4
index 53c1aebf8ea35a1e..14ecd596d3b36573 100644
--- a/m4/ax_c_pragmas.m4
+++ b/m4/ax_c_pragmas.m4
@@ -943,32 +943,32 @@ if test -z "${nut_have_ax_c_printf_string_null_seen}"; then
dnl ### To be sure, bolt the language
AC_LANG_PUSH([C])
- AC_CACHE_CHECK([for practical support to pritnf("%s", NULL)],
+ AC_CACHE_CHECK([for practical support to printf("%s", NULL)],
[ax_cv__printf_string_null],
[AX_RUN_OR_LINK_IFELSE(
[AC_LANG_PROGRAM([dnl
#include <stdio.h>
-#include <strings.h>
-], [dnl
+#include <string.h>
+], [[
char buf[128];
char *s = NULL;
int res = snprintf(buf, sizeof(buf), "%s", s);
buf[sizeof(buf)-1] = '\0';
if (res < 0) {
- printf(stderr, "FAILED to snprintf() a NULL string argument");
- exit 1;
+ fprintf(stderr, "FAILED to snprintf() a NULL string argument\n");
+ return 1;
}
-if (buf[0] == '\0')
- printf(stderr, "RETURNED empty string from snprintf() with a NULL string argument");
- exit 0;
+if (buf[0] == '\0') {
+ fprintf(stderr, "RETURNED empty string from snprintf() with a NULL string argument\n");
+ return 0;
}
-if (strcasestr(buf, 'null') == NULL)
- printf(stderr, "RETURNED some string from snprintf() with a NULL string argument: '%s'", buf);
- exit 0;
+if (strstr(buf, "null") == NULL) {
+ fprintf(stderr, "RETURNED some string from snprintf() with a NULL string argument: '%s'\n", buf);
+ return 0;
}
-printf(stderr, "SUCCESS: RETURNED a string that contains something like 'null' from snprintf() with a NULL string argument: '%s'", buf);
-exit 0;
- ])],
+fprintf(stderr, "SUCCESS: RETURNED a string that contains something like 'null' from snprintf() with a NULL string argument: '%s'\n", buf);
+return 0;
+ ]])],
[ax_cv__printf_string_null=yes],
[ax_cv__printf_string_null=no]
)]

View file

@ -1,17 +0,0 @@
Call the defined foo function instead of the undeclared func function.
Submitted upstream: <https://github.com/networkupstools/nut/pull/1720>
diff --git a/m4/ax_c___attribute__.m4 b/m4/ax_c___attribute__.m4
index 0e952e7841c35b60..780bc2bb14ac5a78 100644
--- a/m4/ax_c___attribute__.m4
+++ b/m4/ax_c___attribute__.m4
@@ -67,7 +67,7 @@ AC_DEFUN([AX_C___ATTRIBUTE__], [
foo(__attribute__ ((unused)) int i) {
return;
}
- ]], [func(1);])],
+ ]], [foo(1);])],
[ax_cv___attribute__unused_arg=yes],
[ax_cv___attribute__unused_arg=no]
)

836
nut.spec

File diff suppressed because it is too large Load diff

View file

@ -1 +1 @@
SHA512 (nut-2.8.2.tar.gz) = b6f8f22318e4a4fcb8073a63132b1cb083952c665191b82a7d6765a61b859575a4b0c2ba84ed17cfb8c88d34179876d64520dd2f75f02fe8707b406da2c0821c
SHA512 (nut-2.8.4.tar.gz) = 0d87c0006608f92ae54f8a500f93d9a81eac1d9abf57f32e7718dd72f265b8293a0b6cdba04c802b81eaf8907b52669c36b47b6875a4377f9752845ac6c5e8fa

147
ups.init
View file

@ -1,147 +0,0 @@
#! /bin/bash
#
# ups: Starts the Network UPS Tools
#
# chkconfig: - 26 74
# description: Network UPS Tools is a collection of programs which provide a common \
# interface for monitoring and administering UPS hardware.
# processname: upsd
# config: /etc/ups/
# config: /etc/sysconfig/ups
#
### BEGIN INIT INFO
# Provides: ups
# Required-Start: $syslog $network $named
# Required-Stop: $local_fs
# Default-Stop: 0 1 6
# Short-Description: Starts the Network UPS tools
# Description: Network UPS Tools is a collection of programs which provide a common \
# interface for monitoring and administering UPS hardware.
### END INIT INFO
# Source function library.
if [ -f /etc/init.d/functions ]; then
. /etc/init.d/functions
elif [ -f /etc/rc.d/init.d/functions ]; then
. /etc/rc.d/init.d/functions
else
exit 0
fi
# Get config.
if [ -f /etc/sysconfig/ups ]; then
. /etc/sysconfig/ups
else
SERVER="no"
fi
start() {
if [ "$SERVER" = "yes" ]; then
echo -n $"Starting UPS driver controller: "
daemon /sbin/upsdrvctl start > /dev/null 2>&1 && success || failure
RETVAL=$?
echo
prog="upsd"
echo -n $"Starting $prog: "
daemon /usr/sbin/upsd $UPSD_OPTIONS > /dev/null 2>&1 && success || failure
if [ "$RETVAL" = 0 ]; then
RETVAL=$?
fi
echo
echo -n $"Starting UPS monitor (master): "
daemon --pidfile /var/run/nut/upsmon.pid /usr/sbin/upsmon > /dev/null 2>&1 && success || failure
if [ "$RETVAL" = 0 ]; then
RETVAL=$?
fi
echo
else
echo -n $"Starting UPS monitor (slave): "
daemon --pidfile /var/run/nut/upsmon.pid /usr/sbin/upsmon > /dev/null 2>&1 && success || failure
echo
fi
[ "$RETVAL" = 0 ] && touch /var/lock/subsys/ups
}
stop() {
echo -n $"Stopping UPS monitor: "
killproc -p /var/run/nut/upsmon.pid upsmon
echo
if [ "$SERVER" = "yes" ]; then
prog="upsd"
echo -n $"Stopping $prog: "
killproc upsd > /dev/null 2>&1 && success || failure
RETVAL=$?
echo
echo -n $"Shutting down UPS driver controller: "
/sbin/upsdrvctl stop > /dev/null 2>&1 && success || failure
if [ "$RETVAL" = 0 ]; then
RETVAL=$?
fi
echo
fi
[ "$RETVAL" = 0 ] && rm -f /var/lock/subsys/ups
}
restart() {
stop
waitmore=5
while [ -n "$(ls /var/run/nut/)" -a $waitmore -ge 1 ]
do
sleep 1
waitmore=$((waitmore-1))
done
start
}
reload() {
# FIXME: upsd and upsmon always return 0
# => can't tell if reload was successful
if [ "$SERVER" = "yes" ]; then
action "Reloading upsd:" /usr/sbin/upsd -c reload
RETVAL=$?
fi
action "Reloading upsmon:" /usr/sbin/upsmon -c reload
if [ "$RETVAL" = 0 ]; then
RETVAL=$?
fi
}
# See how we are called.
case "$1" in
start)
start ;;
stop)
stop ;;
restart)
restart ;;
try-restart)
[ -f /var/lock/subsys/ups ] && restart || :
;;
reload)
reload ;;
force-reload)
restart ;;
status)
if [ "$SERVER" = "yes" ]; then
status upsd
fi
status upsmon
;;
*)
echo $"Usage: $0 {start|stop|restart|try-restart|reload|force-reload|status}"
RETVAL=3
esac
exit $RETVAL

View file

@ -1,8 +0,0 @@
# If the UPS is locally attached set it to "yes"
SERVER=yes
# Any options to pass to upsd
UPSD_OPTIONS=
# This *must* be the same as in /etc/ups/upsmon.conf
POWERDOWNFLAG=/etc/killpower
#
# [End]