diff options
author | Denys Vlasenko | 2023-06-13 16:25:13 +0200 |
---|---|---|
committer | Denys Vlasenko | 2023-06-13 16:25:13 +0200 |
commit | 373f64eef3cc121d7531522ef654feb0a8068d5a (patch) | |
tree | 92ac829cd828020a3e9dcabbb0b64862cf532bb9 | |
parent | 02378ce20c6d2df062357b6d60fc440609d203be (diff) | |
download | busybox-373f64eef3cc121d7531522ef654feb0a8068d5a.zip busybox-373f64eef3cc121d7531522ef654feb0a8068d5a.tar.gz |
syslogd: daemonize _after_ init (so that init errors are visible, if they occur)
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
-rw-r--r-- | sysklogd/syslogd.c | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/sysklogd/syslogd.c b/sysklogd/syslogd.c index 20034e9..7711e46 100644 --- a/sysklogd/syslogd.c +++ b/sysklogd/syslogd.c @@ -1055,6 +1055,14 @@ static int NOINLINE syslogd_init(char **argv) G.hostname = safe_gethostname(); *strchrnul(G.hostname, '.') = '\0'; + xmove_fd(create_socket(), STDIN_FILENO); + + if (opts & OPT_circularlog) + ipcsyslog_init(); + + if (opts & OPT_kmsg) + kmsg_init(); + if (!(opts & OPT_nofork)) { bb_daemonize_or_rexec(DAEMON_CHDIR_ROOT, argv); } @@ -1068,14 +1076,6 @@ static int NOINLINE syslogd_init(char **argv) signal(SIGALRM, do_mark); alarm(G.markInterval); #endif - xmove_fd(create_socket(), STDIN_FILENO); - - if (opts & OPT_circularlog) - ipcsyslog_init(); - - if (opts & OPT_kmsg) - kmsg_init(); - return opts; } |