diff options
author | Eric Andersen <andersen@codepoet.org> | 2001-03-29 21:58:33 +0000 |
---|---|---|
committer | Eric Andersen <andersen@codepoet.org> | 2001-03-29 21:58:33 +0000 |
commit | e5c24dfd010732ab6b80a96ad2a5414499c496c0 (patch) | |
tree | e33107a413c5c41e6a7b160ddb310fe43f5ad01d | |
parent | 3a6da8c183142a2681a2382b63e970f457cf807b (diff) | |
download | busybox-w32-e5c24dfd010732ab6b80a96ad2a5414499c496c0.tar.gz busybox-w32-e5c24dfd010732ab6b80a96ad2a5414499c496c0.tar.bz2 busybox-w32-e5c24dfd010732ab6b80a96ad2a5414499c496c0.zip |
Use daemon() to spawn syslogd and klogd daemons.
-Erik
-rw-r--r-- | klogd.c | 21 | ||||
-rw-r--r-- | sysklogd/klogd.c | 21 | ||||
-rw-r--r-- | sysklogd/syslogd.c | 22 | ||||
-rw-r--r-- | syslogd.c | 22 |
4 files changed, 16 insertions, 70 deletions
@@ -124,18 +124,10 @@ static void doKlogd (void) | |||
124 | } | 124 | } |
125 | } | 125 | } |
126 | 126 | ||
127 | static void daemon_init (char **argv, char *dz, void fn (void)) | ||
128 | { | ||
129 | setsid(); /* start a new session? */ | ||
130 | strncpy(argv[0], dz, strlen(argv[0])); | ||
131 | fn(); | ||
132 | exit(0); | ||
133 | } | ||
134 | |||
135 | extern int klogd_main(int argc, char **argv) | 127 | extern int klogd_main(int argc, char **argv) |
136 | { | 128 | { |
137 | /* no options, no getopt */ | 129 | /* no options, no getopt */ |
138 | int opt, pid; | 130 | int opt; |
139 | int doFork = TRUE; | 131 | int doFork = TRUE; |
140 | 132 | ||
141 | /* do normal option parsing */ | 133 | /* do normal option parsing */ |
@@ -150,15 +142,10 @@ extern int klogd_main(int argc, char **argv) | |||
150 | } | 142 | } |
151 | 143 | ||
152 | if (doFork == TRUE) { | 144 | if (doFork == TRUE) { |
153 | pid = fork(); | 145 | if (daemon(0, 1) < 0) |
154 | if (pid < 0) | 146 | perror_msg_and_die("daemon"); |
155 | exit(pid); | ||
156 | else if (pid == 0) { | ||
157 | daemon_init (argv, "klogd", doKlogd); | ||
158 | } | ||
159 | } else { | ||
160 | doKlogd(); | ||
161 | } | 147 | } |
148 | doKlogd(); | ||
162 | 149 | ||
163 | return EXIT_SUCCESS; | 150 | return EXIT_SUCCESS; |
164 | } | 151 | } |
diff --git a/sysklogd/klogd.c b/sysklogd/klogd.c index d5e330bdf..95d4eea65 100644 --- a/sysklogd/klogd.c +++ b/sysklogd/klogd.c | |||
@@ -124,18 +124,10 @@ static void doKlogd (void) | |||
124 | } | 124 | } |
125 | } | 125 | } |
126 | 126 | ||
127 | static void daemon_init (char **argv, char *dz, void fn (void)) | ||
128 | { | ||
129 | setsid(); /* start a new session? */ | ||
130 | strncpy(argv[0], dz, strlen(argv[0])); | ||
131 | fn(); | ||
132 | exit(0); | ||
133 | } | ||
134 | |||
135 | extern int klogd_main(int argc, char **argv) | 127 | extern int klogd_main(int argc, char **argv) |
136 | { | 128 | { |
137 | /* no options, no getopt */ | 129 | /* no options, no getopt */ |
138 | int opt, pid; | 130 | int opt; |
139 | int doFork = TRUE; | 131 | int doFork = TRUE; |
140 | 132 | ||
141 | /* do normal option parsing */ | 133 | /* do normal option parsing */ |
@@ -150,15 +142,10 @@ extern int klogd_main(int argc, char **argv) | |||
150 | } | 142 | } |
151 | 143 | ||
152 | if (doFork == TRUE) { | 144 | if (doFork == TRUE) { |
153 | pid = fork(); | 145 | if (daemon(0, 1) < 0) |
154 | if (pid < 0) | 146 | perror_msg_and_die("daemon"); |
155 | exit(pid); | ||
156 | else if (pid == 0) { | ||
157 | daemon_init (argv, "klogd", doKlogd); | ||
158 | } | ||
159 | } else { | ||
160 | doKlogd(); | ||
161 | } | 147 | } |
148 | doKlogd(); | ||
162 | 149 | ||
163 | return EXIT_SUCCESS; | 150 | return EXIT_SUCCESS; |
164 | } | 151 | } |
diff --git a/sysklogd/syslogd.c b/sysklogd/syslogd.c index cc42c2942..e83ce48ae 100644 --- a/sysklogd/syslogd.c +++ b/sysklogd/syslogd.c | |||
@@ -562,18 +562,9 @@ static void doSyslogd (void) | |||
562 | } /* for main loop */ | 562 | } /* for main loop */ |
563 | } | 563 | } |
564 | 564 | ||
565 | static void daemon_init (char **argv, char *dz, void fn (void)) | ||
566 | { | ||
567 | setsid(); | ||
568 | chdir ("/"); | ||
569 | strncpy(argv[0], dz, strlen(argv[0])); | ||
570 | fn(); | ||
571 | exit(0); | ||
572 | } | ||
573 | |||
574 | extern int syslogd_main(int argc, char **argv) | 565 | extern int syslogd_main(int argc, char **argv) |
575 | { | 566 | { |
576 | int opt, pid; | 567 | int opt; |
577 | int doFork = TRUE; | 568 | int doFork = TRUE; |
578 | 569 | ||
579 | char *p; | 570 | char *p; |
@@ -635,15 +626,10 @@ extern int syslogd_main(int argc, char **argv) | |||
635 | #endif | 626 | #endif |
636 | 627 | ||
637 | if (doFork == TRUE) { | 628 | if (doFork == TRUE) { |
638 | pid = fork(); | 629 | if (daemon(0, 1) < 0) |
639 | if (pid < 0) | 630 | perror_msg_and_die("daemon"); |
640 | exit(pid); | ||
641 | else if (pid == 0) { | ||
642 | daemon_init (argv, "syslogd", doSyslogd); | ||
643 | } | ||
644 | } else { | ||
645 | doSyslogd(); | ||
646 | } | 631 | } |
632 | doSyslogd(); | ||
647 | 633 | ||
648 | return EXIT_SUCCESS; | 634 | return EXIT_SUCCESS; |
649 | } | 635 | } |
@@ -562,18 +562,9 @@ static void doSyslogd (void) | |||
562 | } /* for main loop */ | 562 | } /* for main loop */ |
563 | } | 563 | } |
564 | 564 | ||
565 | static void daemon_init (char **argv, char *dz, void fn (void)) | ||
566 | { | ||
567 | setsid(); | ||
568 | chdir ("/"); | ||
569 | strncpy(argv[0], dz, strlen(argv[0])); | ||
570 | fn(); | ||
571 | exit(0); | ||
572 | } | ||
573 | |||
574 | extern int syslogd_main(int argc, char **argv) | 565 | extern int syslogd_main(int argc, char **argv) |
575 | { | 566 | { |
576 | int opt, pid; | 567 | int opt; |
577 | int doFork = TRUE; | 568 | int doFork = TRUE; |
578 | 569 | ||
579 | char *p; | 570 | char *p; |
@@ -635,15 +626,10 @@ extern int syslogd_main(int argc, char **argv) | |||
635 | #endif | 626 | #endif |
636 | 627 | ||
637 | if (doFork == TRUE) { | 628 | if (doFork == TRUE) { |
638 | pid = fork(); | 629 | if (daemon(0, 1) < 0) |
639 | if (pid < 0) | 630 | perror_msg_and_die("daemon"); |
640 | exit(pid); | ||
641 | else if (pid == 0) { | ||
642 | daemon_init (argv, "syslogd", doSyslogd); | ||
643 | } | ||
644 | } else { | ||
645 | doSyslogd(); | ||
646 | } | 631 | } |
632 | doSyslogd(); | ||
647 | 633 | ||
648 | return EXIT_SUCCESS; | 634 | return EXIT_SUCCESS; |
649 | } | 635 | } |