From 088fec36fedff2cd50437c95b7fb430abf8d303c Mon Sep 17 00:00:00 2001 From: Denys Vlasenko Date: Mon, 14 Jan 2019 14:45:18 +0100 Subject: start-stop-daemon: create pidfile before parent exits, closes 8596 This removes DAEMON_DOUBLE_FORK flag from bb_daemonize_or_rexec(), as SSD was the only user. Also includes fix for -S: now works without -a and -x, does not print pids (compat with "start-stop-daemon (OpenRC) 0.34.11 (Gentoo Linux)"). function old new delta start_stop_daemon_main 1018 1084 +66 add_interface 99 103 +4 fail_hunk 139 136 -3 bb_daemonize_or_rexec 205 183 -22 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 2/2 up/down: 70/-25) Total: 45 bytes Signed-off-by: Denys Vlasenko --- libbb/vfork_daemon_rexec.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) (limited to 'libbb') diff --git a/libbb/vfork_daemon_rexec.c b/libbb/vfork_daemon_rexec.c index c0bea0ed2..1aac27b36 100644 --- a/libbb/vfork_daemon_rexec.c +++ b/libbb/vfork_daemon_rexec.c @@ -292,14 +292,14 @@ void FAST_FUNC bb_daemonize_or_rexec(int flags, char **argv) dup2(fd, 0); dup2(fd, 1); dup2(fd, 2); - if (flags & DAEMON_DOUBLE_FORK) { - /* On Linux, session leader can acquire ctty - * unknowingly, by opening a tty. - * Prevent this: stop being a session leader. - */ - if (fork_or_rexec(argv)) - _exit(EXIT_SUCCESS); /* parent */ - } +// if (flags & DAEMON_DOUBLE_FORK) { +// /* On Linux, session leader can acquire ctty +// * unknowingly, by opening a tty. +// * Prevent this: stop being a session leader. +// */ +// if (fork_or_rexec(argv)) +// _exit(EXIT_SUCCESS); /* parent */ +// } } while (fd > 2) { close(fd--); -- cgit v1.2.3-55-g6feb