docs/logging_and_backgrounding.txt: new mini-doc
dnsd: remove statics, remove nerly-useless SIGINT handler crond: correct more of logfile to 0666 (as usual, umask allows user to remove unwanted bits). nameif: print errors to stderr too, not just to syslog function old new delta udhcp_read_interface 308 306 -2 ttl 4 - -4 fileconf 4 - -4 dnsentry 4 - -4 interrupt 19 - -19 dnsd_main 1463 1394 -69 ------------------------------------------------------------------------------ (add/remove: 0/4 grow/shrink: 0/2 up/down: 0/-102) Total: -102 bytes text data bss dec hex filename 808161 476 7864 816501 c7575 busybox_old 807994 468 7856 816318 c74be busybox_unstripped
This commit is contained in:
89
docs/logging_and_backgrounding.txt
Normal file
89
docs/logging_and_backgrounding.txt
Normal file
@ -0,0 +1,89 @@
|
||||
Logging and backgrounding
|
||||
|
||||
By default, bb_[p]error_msg[_and_die] messages go to stderr,
|
||||
and of course, usually applets do not auto-background. :)
|
||||
|
||||
Historically, daemons and inetd services are different.
|
||||
|
||||
Busybox is trying to provide compatible behavior, thus if an applet
|
||||
is emulating an existing utility, it should mimic it. If utility
|
||||
auto-backgrounds itself, busybox applet should do the same.
|
||||
If utility normally logs to syslog, busybox applet should do
|
||||
the same too.
|
||||
|
||||
However, busybox should not needlessly restrict the freedom
|
||||
of the users. And users have different needs and different preferences.
|
||||
Some might like logging everything from daemons to syslog.
|
||||
Others prefer running stuff under runsv/svlogd and thus would like
|
||||
logging to stderr and no daemonization.
|
||||
|
||||
To help with that, busybox applets should have options to override
|
||||
default behavior, whatever that is for a given applet.
|
||||
|
||||
|
||||
Current sutiation is a bit of a mess:
|
||||
|
||||
acpid - auto-backgrounds unless -d
|
||||
crond - auto-backgrounds unless -f, logs to syslog unless -d or -L.
|
||||
option -d logs to stderr, -L FILE logs to FILE
|
||||
devfsd - (obsolete)
|
||||
dnsd - option -d makes it auto-background and log to syslog
|
||||
fakeidentd - inetd service. Auto-backgrounds and logs to syslog
|
||||
if no -f and no -i and no -w (-i is "inetd service" flag,
|
||||
-w is "inetd-wait service" flag)
|
||||
ftpd - inetd service. Logs to syslog always, with -v logs to strerr too
|
||||
httpd - auto-backgrounds unless -f or -i
|
||||
(-i is "inetd service" flag)
|
||||
inetd - auto-backgrounds unless -f, logs to syslog unless -e
|
||||
klogd - auto-backgrounds unless -n
|
||||
syslogd - auto-backgrounds unless -n
|
||||
telnetd - auto-backgrounds unless -f or -i
|
||||
(-i is "inetd service" flag)
|
||||
udhcpc - auto-backgrounds unless -f after lease is obtained,
|
||||
option -b makes it background sooner (when lease attempt
|
||||
fails and retries start),
|
||||
after backgrounding it stops logging to stderr;
|
||||
logs to stderr, but option -S makes it log *also* to syslog
|
||||
udhcpd - auto-backgrounds and do not log to stderr unless -f,
|
||||
otherwise logs to stderr, but option -S makes it log *also* to syslog
|
||||
zcip - auto-backgrounds and logs *also* to syslog unless -f
|
||||
|
||||
miscutils/crond.c: logmode = LOGMODE_SYSLOG;
|
||||
networking/dnsd.c: logmode = LOGMODE_SYSLOG;
|
||||
networking/ftpd.c: logmode = LOGMODE_SYSLOG;
|
||||
networking/ftpd.c: logmode |= LOGMODE_SYSLOG;
|
||||
networking/inetd.c: logmode = LOGMODE_SYSLOG;
|
||||
networking/isrv_identd.c: logmode = LOGMODE_SYSLOG;
|
||||
networking/telnetd.c: logmode = LOGMODE_SYSLOG;
|
||||
networking/udhcp/dhcpc.c: logmode = LOGMODE_NONE;
|
||||
networking/udhcp/dhcpc.c: logmode |= LOGMODE_SYSLOG;
|
||||
networking/udhcp/dhcpc.c: logmode &= ~LOGMODE_STDIO;
|
||||
networking/udhcp/dhcpd.c: logmode = LOGMODE_NONE;
|
||||
networking/udhcp/dhcpd.c: logmode |= LOGMODE_SYSLOG;
|
||||
networking/zcip.c: logmode |= LOGMODE_SYSLOG;
|
||||
|
||||
|
||||
These daemons seem to never auto-background/log to syslog:
|
||||
|
||||
lpd - inetd service. Has nothing to log so far, though
|
||||
dhcprelay - standard behavior
|
||||
inotifyd - standard behavior
|
||||
runsv - standard behavior
|
||||
runsvdir - standard behavior
|
||||
svlogd - standard behavior
|
||||
tcpsvd, udpsvd - standard behavior
|
||||
tftpd - standard behavior
|
||||
|
||||
|
||||
Non-daemons (seems to be use syslog for a good reason):
|
||||
|
||||
networking/nameif.c: logmode |= LOGMODE_SYSLOG;
|
||||
loginutils/chpasswd.c: logmode = LOGMODE_BOTH;
|
||||
loginutils/chpasswd.c: logmode = LOGMODE_STDIO;
|
||||
loginutils/getty.c: logmode = LOGMODE_BOTH;
|
||||
loginutils/getty.c: logmode = LOGMODE_NONE;
|
||||
loginutils/passwd.c: logmode = LOGMODE_STDIO;
|
||||
loginutils/passwd.c: logmode = LOGMODE_BOTH;
|
||||
loginutils/sulogin.c: logmode = LOGMODE_SYSLOG; (used if stdio isn't a tty)
|
||||
loginutils/sulogin.c: logmode = LOGMODE_BOTH;
|
||||
util-linux/mount.c: logmode = LOGMODE_SYSLOG; (used in a backgrounded NFS mount helper)
|
Reference in New Issue
Block a user