summaryrefslogtreecommitdiff
path: root/sysklogd
diff options
context:
space:
mode:
authorDenys Vlasenko2023-06-13 16:25:13 +0200
committerDenys Vlasenko2023-06-13 16:25:13 +0200
commit373f64eef3cc121d7531522ef654feb0a8068d5a (patch)
tree92ac829cd828020a3e9dcabbb0b64862cf532bb9 /sysklogd
parent02378ce20c6d2df062357b6d60fc440609d203be (diff)
downloadbusybox-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>
Diffstat (limited to 'sysklogd')
-rw-r--r--sysklogd/syslogd.c16
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;
}