diff options
| author | Denis Vlasenko <vda.linux@googlemail.com> | 2009-03-11 14:40:00 +0000 |
|---|---|---|
| committer | Denis Vlasenko <vda.linux@googlemail.com> | 2009-03-11 14:40:00 +0000 |
| commit | a19e64933c600b7f05232ad80bb5db85c115e42d (patch) | |
| tree | bb832b3fc677066c155b19eaccea085298b1b718 /docs | |
| parent | 4774179cb9e04030485773adf2b7b1055a10faeb (diff) | |
| download | busybox-w32-a19e64933c600b7f05232ad80bb5db85c115e42d.tar.gz busybox-w32-a19e64933c600b7f05232ad80bb5db85c115e42d.tar.bz2 busybox-w32-a19e64933c600b7f05232ad80bb5db85c115e42d.zip | |
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
Diffstat (limited to 'docs')
| -rw-r--r-- | docs/logging_and_backgrounding.txt | 89 |
1 files changed, 89 insertions, 0 deletions
diff --git a/docs/logging_and_backgrounding.txt b/docs/logging_and_backgrounding.txt new file mode 100644 index 000000000..39f015883 --- /dev/null +++ b/docs/logging_and_backgrounding.txt | |||
| @@ -0,0 +1,89 @@ | |||
| 1 | Logging and backgrounding | ||
| 2 | |||
| 3 | By default, bb_[p]error_msg[_and_die] messages go to stderr, | ||
| 4 | and of course, usually applets do not auto-background. :) | ||
| 5 | |||
| 6 | Historically, daemons and inetd services are different. | ||
| 7 | |||
| 8 | Busybox is trying to provide compatible behavior, thus if an applet | ||
| 9 | is emulating an existing utility, it should mimic it. If utility | ||
| 10 | auto-backgrounds itself, busybox applet should do the same. | ||
| 11 | If utility normally logs to syslog, busybox applet should do | ||
| 12 | the same too. | ||
| 13 | |||
| 14 | However, busybox should not needlessly restrict the freedom | ||
| 15 | of the users. And users have different needs and different preferences. | ||
| 16 | Some might like logging everything from daemons to syslog. | ||
| 17 | Others prefer running stuff under runsv/svlogd and thus would like | ||
| 18 | logging to stderr and no daemonization. | ||
| 19 | |||
| 20 | To help with that, busybox applets should have options to override | ||
| 21 | default behavior, whatever that is for a given applet. | ||
| 22 | |||
| 23 | |||
| 24 | Current sutiation is a bit of a mess: | ||
| 25 | |||
| 26 | acpid - auto-backgrounds unless -d | ||
| 27 | crond - auto-backgrounds unless -f, logs to syslog unless -d or -L. | ||
| 28 | option -d logs to stderr, -L FILE logs to FILE | ||
| 29 | devfsd - (obsolete) | ||
| 30 | dnsd - option -d makes it auto-background and log to syslog | ||
| 31 | fakeidentd - inetd service. Auto-backgrounds and logs to syslog | ||
| 32 | if no -f and no -i and no -w (-i is "inetd service" flag, | ||
| 33 | -w is "inetd-wait service" flag) | ||
| 34 | ftpd - inetd service. Logs to syslog always, with -v logs to strerr too | ||
| 35 | httpd - auto-backgrounds unless -f or -i | ||
| 36 | (-i is "inetd service" flag) | ||
| 37 | inetd - auto-backgrounds unless -f, logs to syslog unless -e | ||
| 38 | klogd - auto-backgrounds unless -n | ||
| 39 | syslogd - auto-backgrounds unless -n | ||
| 40 | telnetd - auto-backgrounds unless -f or -i | ||
| 41 | (-i is "inetd service" flag) | ||
| 42 | udhcpc - auto-backgrounds unless -f after lease is obtained, | ||
| 43 | option -b makes it background sooner (when lease attempt | ||
| 44 | fails and retries start), | ||
| 45 | after backgrounding it stops logging to stderr; | ||
| 46 | logs to stderr, but option -S makes it log *also* to syslog | ||
| 47 | udhcpd - auto-backgrounds and do not log to stderr unless -f, | ||
| 48 | otherwise logs to stderr, but option -S makes it log *also* to syslog | ||
| 49 | zcip - auto-backgrounds and logs *also* to syslog unless -f | ||
| 50 | |||
| 51 | miscutils/crond.c: logmode = LOGMODE_SYSLOG; | ||
| 52 | networking/dnsd.c: logmode = LOGMODE_SYSLOG; | ||
| 53 | networking/ftpd.c: logmode = LOGMODE_SYSLOG; | ||
| 54 | networking/ftpd.c: logmode |= LOGMODE_SYSLOG; | ||
| 55 | networking/inetd.c: logmode = LOGMODE_SYSLOG; | ||
| 56 | networking/isrv_identd.c: logmode = LOGMODE_SYSLOG; | ||
| 57 | networking/telnetd.c: logmode = LOGMODE_SYSLOG; | ||
| 58 | networking/udhcp/dhcpc.c: logmode = LOGMODE_NONE; | ||
| 59 | networking/udhcp/dhcpc.c: logmode |= LOGMODE_SYSLOG; | ||
| 60 | networking/udhcp/dhcpc.c: logmode &= ~LOGMODE_STDIO; | ||
| 61 | networking/udhcp/dhcpd.c: logmode = LOGMODE_NONE; | ||
| 62 | networking/udhcp/dhcpd.c: logmode |= LOGMODE_SYSLOG; | ||
| 63 | networking/zcip.c: logmode |= LOGMODE_SYSLOG; | ||
| 64 | |||
| 65 | |||
| 66 | These daemons seem to never auto-background/log to syslog: | ||
| 67 | |||
| 68 | lpd - inetd service. Has nothing to log so far, though | ||
| 69 | dhcprelay - standard behavior | ||
| 70 | inotifyd - standard behavior | ||
| 71 | runsv - standard behavior | ||
| 72 | runsvdir - standard behavior | ||
| 73 | svlogd - standard behavior | ||
| 74 | tcpsvd, udpsvd - standard behavior | ||
| 75 | tftpd - standard behavior | ||
| 76 | |||
| 77 | |||
| 78 | Non-daemons (seems to be use syslog for a good reason): | ||
| 79 | |||
| 80 | networking/nameif.c: logmode |= LOGMODE_SYSLOG; | ||
| 81 | loginutils/chpasswd.c: logmode = LOGMODE_BOTH; | ||
| 82 | loginutils/chpasswd.c: logmode = LOGMODE_STDIO; | ||
| 83 | loginutils/getty.c: logmode = LOGMODE_BOTH; | ||
| 84 | loginutils/getty.c: logmode = LOGMODE_NONE; | ||
| 85 | loginutils/passwd.c: logmode = LOGMODE_STDIO; | ||
| 86 | loginutils/passwd.c: logmode = LOGMODE_BOTH; | ||
| 87 | loginutils/sulogin.c: logmode = LOGMODE_SYSLOG; (used if stdio isn't a tty) | ||
| 88 | loginutils/sulogin.c: logmode = LOGMODE_BOTH; | ||
| 89 | util-linux/mount.c: logmode = LOGMODE_SYSLOG; (used in a backgrounded NFS mount helper) | ||
