From 0da6bbe4a8a9285ba917b0caaf305eeb10eed29f Mon Sep 17 00:00:00 2001 From: Joachim Wiberg Date: Sat, 28 Jun 2025 13:30:38 +0200 Subject: [PATCH] service: minor refactor of stdin redirect Signed-off-by: Joachim Wiberg --- src/service.c | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/src/service.c b/src/service.c index 754fbe63..7783c7a1 100644 --- a/src/service.c +++ b/src/service.c @@ -208,13 +208,16 @@ static int stdin_redirect(void) { int fd; - fd = open("/dev/null", O_RDONLY | O_APPEND); - if (-1 != fd) { - dup2(fd, STDIN_FILENO); - return close(fd); + fd = open("/dev/null", O_RDONLY); + if (fd == -1) { + warn("Failed opening /dev/null for stdin redirect"); + return -1; } - return -1; + dup2(fd, STDIN_FILENO); + close(fd); + + return 0; } /* @@ -261,12 +264,10 @@ static void fallback_logger(char *ident, char *prio) static int lredirect(svc_t *svc) { static int have_sysklogd = -1; - pid_t pid, svc_pid; + pid_t svc_pid = getpid(); + pid_t pid; int fd; - svc_pid = getpid(); - dbg("%s pid: %d", svc_ident(svc, NULL, 0), svc_pid); - /* * Open PTY to connect to logger. A pty isn't buffered * like a pipe, and it eats newlines so they aren't logged