|
|
0b850eb |
diff -up nut-2.7.1/clients/upsmon.c.foreground nut-2.7.1/clients/upsmon.c
|
|
|
0b850eb |
--- nut-2.7.1/clients/upsmon.c.foreground 2013-07-26 21:41:10.000000000 +0200
|
|
|
0b850eb |
+++ nut-2.7.1/clients/upsmon.c 2014-02-27 11:39:58.158784578 +0100
|
|
|
0b850eb |
@@ -1645,6 +1645,7 @@ static void help(const char *progname)
|
|
|
324dacc |
printf(" - reload: reread configuration\n");
|
|
|
324dacc |
printf(" - stop: stop monitoring and exit\n");
|
|
|
324dacc |
printf(" -D raise debugging level\n");
|
|
|
324dacc |
+ printf(" -F run in foreground, do not daemonize\n");
|
|
|
324dacc |
printf(" -h display this help\n");
|
|
|
324dacc |
printf(" -K checks POWERDOWNFLAG, sets exit code to 0 if set\n");
|
|
|
324dacc |
printf(" -p always run privileged (disable privileged parent)\n");
|
|
|
0b850eb |
@@ -1859,7 +1860,7 @@ static void check_parent(void)
|
|
|
324dacc |
int main(int argc, char *argv[])
|
|
|
324dacc |
{
|
|
|
324dacc |
const char *prog = xbasename(argv[0]);
|
|
|
324dacc |
- int i, cmd = 0, checking_flag = 0;
|
|
|
324dacc |
+ int i, cmd = 0, checking_flag = 0, foreground = 0;
|
|
|
324dacc |
|
|
|
324dacc |
printf("Network UPS Tools %s %s\n", prog, UPS_VERSION);
|
|
|
324dacc |
|
|
|
0b850eb |
@@ -1870,7 +1871,7 @@ int main(int argc, char *argv[])
|
|
|
324dacc |
|
|
|
324dacc |
run_as_user = xstrdup(RUN_AS_USER);
|
|
|
324dacc |
|
|
|
324dacc |
- while ((i = getopt(argc, argv, "+Dhic:f:pu:VK46")) != -1) {
|
|
|
324dacc |
+ while ((i = getopt(argc, argv, "+DFhic:f:pu:VK46")) != -1) {
|
|
|
324dacc |
switch (i) {
|
|
|
324dacc |
case 'c':
|
|
|
324dacc |
if (!strncmp(optarg, "fsd", strlen(optarg)))
|
|
|
0b850eb |
@@ -1887,6 +1888,9 @@ int main(int argc, char *argv[])
|
|
|
324dacc |
case 'D':
|
|
|
324dacc |
nut_debug_level++;
|
|
|
324dacc |
break;
|
|
|
324dacc |
+ case 'F':
|
|
|
324dacc |
+ foreground = 1;
|
|
|
324dacc |
+ break;
|
|
|
324dacc |
case 'f':
|
|
|
324dacc |
free(configfile);
|
|
|
324dacc |
configfile = xstrdup(optarg);
|
|
|
0b850eb |
@@ -1962,9 +1966,9 @@ int main(int argc, char *argv[])
|
|
|
324dacc |
exit(EXIT_FAILURE);
|
|
|
324dacc |
}
|
|
|
324dacc |
|
|
|
324dacc |
- if (nut_debug_level < 1) {
|
|
|
324dacc |
+ if (!foreground && nut_debug_level < 1) {
|
|
|
324dacc |
background();
|
|
|
324dacc |
- } else {
|
|
|
324dacc |
+ } else if (nut_debug_level >= 1) {
|
|
|
324dacc |
upsdebugx(1, "debug level is '%d'", nut_debug_level);
|
|
|
324dacc |
}
|
|
|
324dacc |
|
|
|
0b850eb |
diff -up nut-2.7.1/scripts/systemd/nut-monitor.service.in.foreground nut-2.7.1/scripts/systemd/nut-monitor.service.in
|
|
|
0b850eb |
--- nut-2.7.1/scripts/systemd/nut-monitor.service.in.foreground 2014-02-27 11:39:58.141784438 +0100
|
|
|
0b850eb |
+++ nut-2.7.1/scripts/systemd/nut-monitor.service.in 2014-02-27 11:39:58.152784529 +0100
|
|
|
324dacc |
@@ -4,9 +4,8 @@ After=local-fs.target network.target nut
|
|
|
324dacc |
|
|
|
324dacc |
[Service]
|
|
|
0768358 |
ExecStartPre=-/usr/bin/systemd-tmpfiles --create /usr/lib/tmpfiles.d/nut-client.conf
|
|
|
324dacc |
-ExecStart=@SBINDIR@/upsmon
|
|
|
324dacc |
-PIDFile=@PIDPATH@/upsmon.pid
|
|
|
324dacc |
-Type=forking
|
|
|
324dacc |
+ExecStart=@SBINDIR@/upsmon -F
|
|
|
324dacc |
+Type=simple
|
|
|
324dacc |
|
|
|
324dacc |
[Install]
|
|
|
324dacc |
WantedBy=multi-user.target
|
|
|
0b850eb |
diff -up nut-2.7.1/scripts/systemd/nut-server.service.in.foreground nut-2.7.1/scripts/systemd/nut-server.service.in
|
|
|
0b850eb |
--- nut-2.7.1/scripts/systemd/nut-server.service.in.foreground 2013-07-26 21:41:11.000000000 +0200
|
|
|
0b850eb |
+++ nut-2.7.1/scripts/systemd/nut-server.service.in 2014-02-27 11:39:58.152784529 +0100
|
|
|
324dacc |
@@ -5,8 +5,8 @@ Requires=nut-driver.service
|
|
|
324dacc |
Before=nut-monitor.service
|
|
|
324dacc |
|
|
|
324dacc |
[Service]
|
|
|
324dacc |
-ExecStart=@SBINDIR@/upsd
|
|
|
324dacc |
-Type=forking
|
|
|
324dacc |
+ExecStart=@SBINDIR@/upsd -F
|
|
|
324dacc |
+Type=simple
|
|
|
324dacc |
|
|
|
324dacc |
[Install]
|
|
|
324dacc |
WantedBy=multi-user.target
|
|
|
0b850eb |
diff -up nut-2.7.1/server/upsd.c.foreground nut-2.7.1/server/upsd.c
|
|
|
0b850eb |
--- nut-2.7.1/server/upsd.c.foreground 2013-07-26 21:41:11.000000000 +0200
|
|
|
0b850eb |
+++ nut-2.7.1/server/upsd.c 2014-02-27 11:39:58.153784537 +0100
|
|
|
0b850eb |
@@ -827,6 +827,7 @@ static void help(const char *progname)
|
|
|
324dacc |
printf(" - reload: reread configuration files\n");
|
|
|
324dacc |
printf(" - stop: stop process and exit\n");
|
|
|
324dacc |
printf(" -D raise debugging level\n");
|
|
|
324dacc |
+ printf(" -F run in foreground, do not daemonize\n");
|
|
|
324dacc |
printf(" -h display this help\n");
|
|
|
324dacc |
printf(" -r <dir> chroots to <dir>\n");
|
|
|
324dacc |
printf(" -q raise log level threshold\n");
|
|
|
0b850eb |
@@ -890,7 +891,7 @@ void check_perms(const char *fn)
|
|
|
324dacc |
|
|
|
324dacc |
int main(int argc, char **argv)
|
|
|
324dacc |
{
|
|
|
324dacc |
- int i, cmd = 0;
|
|
|
324dacc |
+ int i, cmd = 0, foreground = 0;
|
|
|
324dacc |
char *chroot_path = NULL;
|
|
|
324dacc |
const char *user = RUN_AS_USER;
|
|
|
324dacc |
struct passwd *new_uid = NULL;
|
|
|
0b850eb |
@@ -906,7 +907,7 @@ int main(int argc, char **argv)
|
|
|
324dacc |
|
|
|
324dacc |
printf("Network UPS Tools %s %s\n", progname, UPS_VERSION);
|
|
|
324dacc |
|
|
|
324dacc |
- while ((i = getopt(argc, argv, "+h46p:qr:i:fu:Vc:D")) != -1) {
|
|
|
324dacc |
+ while ((i = getopt(argc, argv, "+hF46p:qr:i:fu:Vc:D")) != -1) {
|
|
|
324dacc |
switch (i) {
|
|
|
324dacc |
case 'h':
|
|
|
324dacc |
help(progname);
|
|
|
0b850eb |
@@ -944,6 +945,10 @@ int main(int argc, char **argv)
|
|
|
324dacc |
nut_debug_level++;
|
|
|
324dacc |
break;
|
|
|
324dacc |
|
|
|
324dacc |
+ case 'F':
|
|
|
324dacc |
+ foreground = 1;
|
|
|
324dacc |
+ break;
|
|
|
324dacc |
+
|
|
|
324dacc |
case '4':
|
|
|
324dacc |
opt_af = AF_INET;
|
|
|
324dacc |
break;
|
|
|
0b850eb |
@@ -1031,7 +1036,7 @@ int main(int argc, char **argv)
|
|
|
324dacc |
/* handle upsd.users */
|
|
|
324dacc |
user_load();
|
|
|
324dacc |
|
|
|
324dacc |
- if (!nut_debug_level) {
|
|
|
324dacc |
+ if (!nut_debug_level && !foreground) {
|
|
|
324dacc |
background();
|
|
|
324dacc |
writepid(pidfn);
|
|
|
324dacc |
} else {
|