diff options
author | Anthony G. Basile | 2012-12-10 14:49:39 -0500 |
---|---|---|
committer | Mike Frysinger | 2012-12-19 15:53:33 -0500 |
commit | 12677acf0a0bda4a863279ece65eccda6c36d6b1 (patch) | |
tree | c93e3cece76881ebfbc09747fc841db94f2797d5 /sysklogd | |
parent | 393c395ca50d0b95003d5adfc6d1ca95763cc732 (diff) | |
download | busybox-12677acf0a0bda4a863279ece65eccda6c36d6b1.zip busybox-12677acf0a0bda4a863279ece65eccda6c36d6b1.tar.gz |
CONFIG_PID_FILE_PATH: new configuration option for pidfile paths
We set a default path for the directory where pidfiles are create
when FEATURE_PIDFILE is selected. The default has no effect on
applets which must specify a pidfile path on the command line to
run, and it can be overridden by applets which optionally allow
the user to specify the pidfile path.
We also add pidfile write/remove support for klogd, ntpd and watchdog.
For syslogd, we add a missing remove_pidfile() for better cleanup
on daemon exit.
Signed-off-by: Anthony G. Basile <blueness@gentoo.org>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Diffstat (limited to 'sysklogd')
-rw-r--r-- | sysklogd/klogd.c | 3 | ||||
-rw-r--r-- | sysklogd/syslogd.c | 5 |
2 files changed, 7 insertions, 1 deletions
diff --git a/sysklogd/klogd.c b/sysklogd/klogd.c index efa0e53..f59a155 100644 --- a/sysklogd/klogd.c +++ b/sysklogd/klogd.c @@ -195,6 +195,8 @@ int klogd_main(int argc UNUSED_PARAM, char **argv) syslog(LOG_NOTICE, "klogd started: %s", bb_banner); + write_pidfile(CONFIG_PID_FILE_PATH "/klogd.pid"); + used = 0; while (!bb_got_signal) { int n; @@ -258,6 +260,7 @@ int klogd_main(int argc UNUSED_PARAM, char **argv) klogd_close(); syslog(LOG_NOTICE, "klogd: exiting"); + remove_pidfile(CONFIG_PID_FILE_PATH "/klogd.pid"); if (bb_got_signal) kill_myself_with_sig(bb_got_signal); return EXIT_FAILURE; diff --git a/sysklogd/syslogd.c b/sysklogd/syslogd.c index fc380d9..5854bcd 100644 --- a/sysklogd/syslogd.c +++ b/sysklogd/syslogd.c @@ -916,6 +916,7 @@ static void do_syslogd(void) timestamp_and_log_internal("syslogd exiting"); puts("syslogd exiting"); + remove_pidfile(CONFIG_PID_FILE_PATH "/syslogd.pid"); if (ENABLE_FEATURE_IPC_SYSLOG) ipcsyslog_cleanup(); kill_myself_with_sig(bb_got_signal); @@ -979,8 +980,10 @@ int syslogd_main(int argc UNUSED_PARAM, char **argv) if (!(opts & OPT_nofork)) { bb_daemonize_or_rexec(DAEMON_CHDIR_ROOT, argv); } + //umask(0); - why?? - write_pidfile("/var/run/syslogd.pid"); + write_pidfile(CONFIG_PID_FILE_PATH "/syslogd.pid"); + do_syslogd(); /* return EXIT_SUCCESS; */ } |