Browse Source

nut: added patch for upsd to not detach from the controlling tty

user/karasz/firmware
Christian Wiese 13 years ago committed by Christian Wiese
parent
commit
368951712a
  1. 80
      monitor/nut/nut-2.6.5-upsd-foreground.patch

80
monitor/nut/nut-2.6.5-upsd-foreground.patch

@ -0,0 +1,80 @@
# --- SDE-COPYRIGHT-NOTE-BEGIN ---
# This copyright note is auto-generated by ./scripts/Create-CopyPatch.
#
# Filename: package/.../nut/nut-2.6.5-upsd-foreground.patch
# Copyright (C) 2012 The OpenSDE Project
#
# More information can be found in the files COPYING and README.
#
# This patch file is dual-licensed. It is available under the license the
# patched project is licensed under, as long as it is an OpenSource license
# as defined at http://www.opensource.org/ (e.g. BSD, X11) or under the terms
# of the GNU General Public License as published by the Free Software
# Foundation; either version 2 of the License, or (at your option) any later
# version.
# --- SDE-COPYRIGHT-NOTE-END ---
Description: Add option upsd to not detach from the controlling tty
This is needed to run upsd by a supervise service like daemontools,
runit.
The original default behavoir, which detaches from the controlling tty
and running in background has been preserved.
To run upsd in foreground you have to use the -f command option.
diff -ruN nut-2.6.5-orig/common/common.c nut-2.6.5/common/common.c
--- nut-2.6.5-orig/common/common.c 2012-07-31 19:38:58.000000000 +0200
+++ nut-2.6.5/common/common.c 2012-08-15 09:07:43.949002650 +0200
@@ -32,6 +32,7 @@
#include "nut_version.h"
const char *UPS_VERSION = NUT_VERSION_MACRO;
+ int foreground = 0;
int nut_debug_level = 0;
int nut_log_level = 0;
static int upslog_flags = UPSLOG_STDERR;
diff -ruN nut-2.6.5-orig/include/common.h nut-2.6.5/include/common.h
--- nut-2.6.5-orig/include/common.h 2012-07-31 19:38:56.000000000 +0200
+++ nut-2.6.5/include/common.h 2012-08-15 09:14:10.999949407 +0200
@@ -52,6 +52,9 @@
/* close ttys and become a daemon */
void background(void);
+/* do not detach from controlling tty and run in foreground */
+extern int foreground;
+
/* do this here to keep pwd/grp stuff out of the main files */
struct passwd *get_user_pwent(const char *name);
diff -ruN nut-2.6.5-orig/server/upsd.c nut-2.6.5/server/upsd.c
--- nut-2.6.5-orig/server/upsd.c 2012-07-31 19:38:58.000000000 +0200
+++ nut-2.6.5/server/upsd.c 2012-08-15 09:07:43.949002650 +0200
@@ -819,6 +819,7 @@
printf(" - reload: reread configuration files\n");
printf(" - stop: stop process and exit\n");
printf(" -D raise debugging level\n");
+ printf(" -f run in foreground\n");
printf(" -h display this help\n");
printf(" -r <dir> chroots to <dir>\n");
printf(" -q raise log level threshold\n");
@@ -936,6 +937,10 @@
nut_debug_level++;
break;
+ case 'f':
+ foreground = 1;
+ break;
+
case '4':
opt_af = AF_INET;
break;
@@ -1023,7 +1028,7 @@
/* handle upsd.users */
user_load();
- if (!nut_debug_level) {
+ if ((!nut_debug_level) && (!foreground)) {
background();
writepid(pidfn);
} else {
Loading…
Cancel
Save