aboutsummaryrefslogtreecommitdiff
path: root/sysklogd
diff options
context:
space:
mode:
authorAnthony G. Basile <blueness@gentoo.org>2012-12-10 14:49:39 -0500
committerMike Frysinger <vapier@gentoo.org>2012-12-19 15:53:33 -0500
commit12677acf0a0bda4a863279ece65eccda6c36d6b1 (patch)
treec93e3cece76881ebfbc09747fc841db94f2797d5 /sysklogd
parent393c395ca50d0b95003d5adfc6d1ca95763cc732 (diff)
downloadbusybox-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.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)
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}