logsave.c (main): Use setsid() to avoid getting killed by init
(run_program): Add a newline after reporting the exit code
or signal when the program exits.
diff --git a/misc/logsave.c b/misc/logsave.c
index 9790047..f256c20 100644
--- a/misc/logsave.c
+++ b/misc/logsave.c
@@ -139,13 +139,13 @@
rc = WEXITSTATUS(status);
if (rc) {
send_output(argv[0], 0, SEND_BOTH);
- sprintf(buffer, " died with exit status %d", rc);
+ sprintf(buffer, " died with exit status %d\n", rc);
send_output(buffer, 0, SEND_BOTH);
}
} else {
if (WIFSIGNALED(status)) {
send_output(argv[0], 0, SEND_BOTH);
- sprintf(buffer, "died with signal %d",
+ sprintf(buffer, "died with signal %d\n",
WTERMSIG(status));
send_output(buffer, 0, SEND_BOTH);
rc = 1;
@@ -248,6 +248,7 @@
outfn);
exit(rc);
}
+ setsid(); /* To avoid getting killed by init */
while (outfd < 0) {
outfd = open(outfn, openflags, 0644);
sleep(1);