diff options
| author | Eric Andersen <andersen@codepoet.org> | 2001-07-19 22:28:02 +0000 |
|---|---|---|
| committer | Eric Andersen <andersen@codepoet.org> | 2001-07-19 22:28:02 +0000 |
| commit | 20aab260e2f7011523402464fb079f48e5899890 (patch) | |
| tree | f7822e652f54884459d525f57f1ef18c03a126f7 /miscutils | |
| parent | 0382eb886529fc4dab170e7d66883c20fe0e2883 (diff) | |
| download | busybox-w32-20aab260e2f7011523402464fb079f48e5899890.tar.gz busybox-w32-20aab260e2f7011523402464fb079f48e5899890.tar.bz2 busybox-w32-20aab260e2f7011523402464fb079f48e5899890.zip | |
Some adjustments, mostly from David McCullough <davidm@lineo.com> to
make busybox be more uClinux friendly. I also adjusted Config.h for
uClinux so it will automagically disable apps the arn't going to
work without fork() and such.
-Erik
Diffstat (limited to 'miscutils')
| -rw-r--r-- | miscutils/update.c | 60 |
1 files changed, 29 insertions, 31 deletions
diff --git a/miscutils/update.c b/miscutils/update.c index a6550b05c..603740e38 100644 --- a/miscutils/update.c +++ b/miscutils/update.c | |||
| @@ -65,46 +65,44 @@ extern int update_main(int argc, char **argv) | |||
| 65 | show_usage(); | 65 | show_usage(); |
| 66 | } | 66 | } |
| 67 | } | 67 | } |
| 68 | |||
| 69 | if (daemon(0, 1) < 0) | ||
| 70 | perror_msg_and_die("daemon"); | ||
| 68 | 71 | ||
| 69 | pid = fork(); | 72 | /* Become a proper daemon */ |
| 70 | if (pid < 0) | 73 | setsid(); |
| 71 | return EXIT_FAILURE; | 74 | chdir("/"); |
| 72 | else if (pid == 0) { | ||
| 73 | /* Become a proper daemon */ | ||
| 74 | setsid(); | ||
| 75 | chdir("/"); | ||
| 76 | #ifdef OPEN_MAX | 75 | #ifdef OPEN_MAX |
| 77 | for (pid = 0; pid < OPEN_MAX; pid++) close(pid); | 76 | for (pid = 0; pid < OPEN_MAX; pid++) close(pid); |
| 78 | #else | 77 | #else |
| 79 | /* glibc 2.1.92 requires using sysconf(_SC_OPEN_MAX) */ | 78 | /* glibc 2.1.92 requires using sysconf(_SC_OPEN_MAX) */ |
| 80 | for (pid = 0; pid < sysconf(_SC_OPEN_MAX); pid++) close(pid); | 79 | for (pid = 0; pid < sysconf(_SC_OPEN_MAX); pid++) close(pid); |
| 81 | #endif | 80 | #endif |
| 82 | 81 | ||
| 83 | /* | 82 | /* This is no longer necessary since 1.3.5x, but it will harmlessly |
| 84 | * This is no longer necessary since 1.3.5x, but it will harmlessly | 83 | * exit if that is the case. |
| 85 | * exit if that is the case. | 84 | */ |
| 86 | */ | ||
| 87 | 85 | ||
| 88 | /* set the program name that will show up in a 'ps' listing */ | 86 | /* set the program name that will show up in a 'ps' listing */ |
| 89 | argv[0] = "bdflush (update)"; | 87 | argv[0] = "bdflush (update)"; |
| 90 | argv[1] = NULL; | 88 | argv[1] = NULL; |
| 91 | argv[2] = NULL; | 89 | argv[2] = NULL; |
| 92 | for (;;) { | 90 | for (;;) { |
| 93 | if (use_sync) { | 91 | if (use_sync) { |
| 94 | sleep(sync_duration); | 92 | sleep(sync_duration); |
| 95 | sync(); | 93 | sync(); |
| 96 | } else { | 94 | } else { |
| 97 | sleep(flush_duration); | 95 | sleep(flush_duration); |
| 98 | if (bdflush(1, 0) < 0) { | 96 | if (bdflush(1, 0) < 0) { |
| 99 | openlog("update", LOG_CONS, LOG_DAEMON); | 97 | openlog("update", LOG_CONS, LOG_DAEMON); |
| 100 | syslog(LOG_INFO, | 98 | syslog(LOG_INFO, |
| 101 | "This kernel does not need update(8). Exiting."); | 99 | "This kernel does not need update(8). Exiting."); |
| 102 | closelog(); | 100 | closelog(); |
| 103 | return EXIT_SUCCESS; | 101 | return EXIT_SUCCESS; |
| 104 | } | ||
| 105 | } | 102 | } |
| 106 | } | 103 | } |
| 107 | } | 104 | } |
| 105 | |||
| 108 | return EXIT_SUCCESS; | 106 | return EXIT_SUCCESS; |
| 109 | } | 107 | } |
| 110 | 108 | ||
