ddcbad03d0
For me, more often than not, the backgrounded syslogd daemon is not yet ready to process log messages before other things (such as named) want to log a heap of them. It seems that it's the O_SYNC writes of the stuff coming in from /dev/klog that's the slowdown. Anyway, instead of using the libc daemon, roll a modified version. This one has a timeout. The child will wait for either the timeout to expire or the child process to signal it to let it know that it's "ready" and the /dev/log socket is set up and active, so it's safe to continue the boot. It adds a small fraction of a second pause to the boot time, but on the other hand the overall boot time is *quicker* since the disk is not being thrashed while the log messages are getting written out synchronously one by one while other daemons are loading in parallel. The timeout is in case the child segfaults or something before becoming fully operational. |
||
---|---|---|
.. | ||
Makefile | ||
pathnames.h | ||
syslog.conf.5 | ||
syslogd.8 | ||
syslogd.c |