aboutsummaryrefslogtreecommitdiff
path: root/sysklogd
diff options
context:
space:
mode:
authorGravatar Anthony G. Basile <blueness@gentoo.org>2012-12-10 14:49:39 -0500
committerGravatar Mike Frysinger <vapier@gentoo.org>2012-12-19 15:53:33 -0500
commit12677acf0a0bda4a863279ece65eccda6c36d6b1 (patch)
treec93e3cece76881ebfbc09747fc841db94f2797d5 /sysklogd
parent393c395ca50d0b95003d5adfc6d1ca95763cc732 (diff)
downloadbusybox-12677acf0a0bda4a863279ece65eccda6c36d6b1.tar.gz
busybox-12677acf0a0bda4a863279ece65eccda6c36d6b1.tar.bz2
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.c3
-rw-r--r--sysklogd/syslogd.c5
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)
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 fc380d9f9..5854bcd0f 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; */
}