diff options
author | Anthony G. Basile <blueness@gentoo.org> | 2012-12-10 14:49:39 -0500 |
---|---|---|
committer | Mike Frysinger <vapier@gentoo.org> | 2012-12-19 15:53:33 -0500 |
commit | 12677acf0a0bda4a863279ece65eccda6c36d6b1 (patch) | |
tree | c93e3cece76881ebfbc09747fc841db94f2797d5 /sysklogd | |
parent | 393c395ca50d0b95003d5adfc6d1ca95763cc732 (diff) | |
download | busybox-w32-12677acf0a0bda4a863279ece65eccda6c36d6b1.tar.gz busybox-w32-12677acf0a0bda4a863279ece65eccda6c36d6b1.tar.bz2 busybox-w32-12677acf0a0bda4a863279ece65eccda6c36d6b1.zip |
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 efa0e537a..f59a155b4 100644 --- a/sysklogd/klogd.c +++ b/sysklogd/klogd.c | |||
@@ -195,6 +195,8 @@ int klogd_main(int argc UNUSED_PARAM, char **argv) | |||
195 | 195 | ||
196 | syslog(LOG_NOTICE, "klogd started: %s", bb_banner); | 196 | syslog(LOG_NOTICE, "klogd started: %s", bb_banner); |
197 | 197 | ||
198 | write_pidfile(CONFIG_PID_FILE_PATH "/klogd.pid"); | ||
199 | |||
198 | used = 0; | 200 | used = 0; |
199 | while (!bb_got_signal) { | 201 | while (!bb_got_signal) { |
200 | int n; | 202 | int n; |
@@ -258,6 +260,7 @@ int klogd_main(int argc UNUSED_PARAM, char **argv) | |||
258 | 260 | ||
259 | klogd_close(); | 261 | klogd_close(); |
260 | syslog(LOG_NOTICE, "klogd: exiting"); | 262 | syslog(LOG_NOTICE, "klogd: exiting"); |
263 | remove_pidfile(CONFIG_PID_FILE_PATH "/klogd.pid"); | ||
261 | if (bb_got_signal) | 264 | if (bb_got_signal) |
262 | kill_myself_with_sig(bb_got_signal); | 265 | kill_myself_with_sig(bb_got_signal); |
263 | return EXIT_FAILURE; | 266 | return EXIT_FAILURE; |
diff --git a/sysklogd/syslogd.c b/sysklogd/syslogd.c index fc380d9f9..5854bcd0f 100644 --- a/sysklogd/syslogd.c +++ b/sysklogd/syslogd.c | |||
@@ -916,6 +916,7 @@ static void do_syslogd(void) | |||
916 | 916 | ||
917 | timestamp_and_log_internal("syslogd exiting"); | 917 | timestamp_and_log_internal("syslogd exiting"); |
918 | puts("syslogd exiting"); | 918 | puts("syslogd exiting"); |
919 | remove_pidfile(CONFIG_PID_FILE_PATH "/syslogd.pid"); | ||
919 | if (ENABLE_FEATURE_IPC_SYSLOG) | 920 | if (ENABLE_FEATURE_IPC_SYSLOG) |
920 | ipcsyslog_cleanup(); | 921 | ipcsyslog_cleanup(); |
921 | kill_myself_with_sig(bb_got_signal); | 922 | kill_myself_with_sig(bb_got_signal); |
@@ -979,8 +980,10 @@ int syslogd_main(int argc UNUSED_PARAM, char **argv) | |||
979 | if (!(opts & OPT_nofork)) { | 980 | if (!(opts & OPT_nofork)) { |
980 | bb_daemonize_or_rexec(DAEMON_CHDIR_ROOT, argv); | 981 | bb_daemonize_or_rexec(DAEMON_CHDIR_ROOT, argv); |
981 | } | 982 | } |
983 | |||
982 | //umask(0); - why?? | 984 | //umask(0); - why?? |
983 | write_pidfile("/var/run/syslogd.pid"); | 985 | write_pidfile(CONFIG_PID_FILE_PATH "/syslogd.pid"); |
986 | |||
984 | do_syslogd(); | 987 | do_syslogd(); |
985 | /* return EXIT_SUCCESS; */ | 988 | /* return EXIT_SUCCESS; */ |
986 | } | 989 | } |