diff options
| author | vda <vda@69ca8d6d-28ef-0310-b511-8ec308f3f277> | 2006-12-17 19:43:10 +0000 |
|---|---|---|
| committer | vda <vda@69ca8d6d-28ef-0310-b511-8ec308f3f277> | 2006-12-17 19:43:10 +0000 |
| commit | afd32324ae45bf2a70943a6509dc3e9d70521b49 (patch) | |
| tree | 8abfddbb424183f8d0c8f0b2d422849e565e6bea /debianutils | |
| parent | 90832c7bdd7e7130c07da4524ee2960cac3de1ce (diff) | |
| download | busybox-w32-afd32324ae45bf2a70943a6509dc3e9d70521b49.tar.gz busybox-w32-afd32324ae45bf2a70943a6509dc3e9d70521b49.tar.bz2 busybox-w32-afd32324ae45bf2a70943a6509dc3e9d70521b49.zip | |
start_stop_daemon: make code a bit more readable
git-svn-id: svn://busybox.net/trunk/busybox@16985 69ca8d6d-28ef-0310-b511-8ec308f3f277
Diffstat (limited to 'debianutils')
| -rw-r--r-- | debianutils/start_stop_daemon.c | 42 |
1 files changed, 19 insertions, 23 deletions
diff --git a/debianutils/start_stop_daemon.c b/debianutils/start_stop_daemon.c index 399f9f5e1..d1f5e94c0 100644 --- a/debianutils/start_stop_daemon.c +++ b/debianutils/start_stop_daemon.c | |||
| @@ -194,7 +194,7 @@ static int do_stop(void) | |||
| 194 | } | 194 | } |
| 195 | 195 | ||
| 196 | #if ENABLE_FEATURE_START_STOP_DAEMON_LONG_OPTIONS | 196 | #if ENABLE_FEATURE_START_STOP_DAEMON_LONG_OPTIONS |
| 197 | static const struct option ssd_long_options[] = { | 197 | static const struct option long_options[] = { |
| 198 | { "stop", 0, NULL, 'K' }, | 198 | { "stop", 0, NULL, 'K' }, |
| 199 | { "start", 0, NULL, 'S' }, | 199 | { "start", 0, NULL, 'S' }, |
| 200 | { "background", 0, NULL, 'b' }, | 200 | { "background", 0, NULL, 'b' }, |
| @@ -219,16 +219,16 @@ static const struct option ssd_long_options[] = { | |||
| 219 | }; | 219 | }; |
| 220 | #endif | 220 | #endif |
| 221 | 221 | ||
| 222 | #define SSD_CTX_STOP 0x1 | 222 | enum { |
| 223 | #define SSD_CTX_START 0x2 | 223 | CTX_STOP = 0x1, |
| 224 | #define SSD_OPT_BACKGROUND 0x4 | 224 | CTX_START = 0x2, |
| 225 | #define SSD_OPT_QUIET 0x8 | 225 | OPT_BACKGROUND = 0x4, |
| 226 | #define SSD_OPT_MAKEPID 0x10 | 226 | OPT_QUIET = 0x8, |
| 227 | #if ENABLE_FEATURE_START_STOP_DAEMON_FANCY | 227 | OPT_MAKEPID = 0x10, |
| 228 | #define SSD_OPT_OKNODO 0x20 | 228 | OPT_OKNODO = 0x20 * ENABLE_FEATURE_START_STOP_DAEMON_FANCY, |
| 229 | #define SSD_OPT_VERBOSE 0x40 | 229 | OPT_VERBOSE = 0x40 * ENABLE_FEATURE_START_STOP_DAEMON_FANCY, |
| 230 | #define SSD_OPT_NICELEVEL 0x80 | 230 | OPT_NICELEVEL = 0x80 * ENABLE_FEATURE_START_STOP_DAEMON_FANCY, |
| 231 | #endif | 231 | }; |
| 232 | 232 | ||
| 233 | int start_stop_daemon_main(int argc, char **argv) | 233 | int start_stop_daemon_main(int argc, char **argv) |
| 234 | { | 234 | { |
| @@ -241,7 +241,7 @@ int start_stop_daemon_main(int argc, char **argv) | |||
| 241 | char *opt_N; | 241 | char *opt_N; |
| 242 | #endif | 242 | #endif |
| 243 | #if ENABLE_FEATURE_START_STOP_DAEMON_LONG_OPTIONS | 243 | #if ENABLE_FEATURE_START_STOP_DAEMON_LONG_OPTIONS |
| 244 | applet_long_options = ssd_long_options; | 244 | applet_long_options = long_options; |
| 245 | #endif | 245 | #endif |
| 246 | 246 | ||
| 247 | /* Check required one context option was given */ | 247 | /* Check required one context option was given */ |
| @@ -254,8 +254,7 @@ int start_stop_daemon_main(int argc, char **argv) | |||
| 254 | // USE_FEATURE_START_STOP_DAEMON_FANCY(,&retry_arg) | 254 | // USE_FEATURE_START_STOP_DAEMON_FANCY(,&retry_arg) |
| 255 | ,&startas, &cmdname, &signame, &userspec, &chuid, &execname, &pidfile); | 255 | ,&startas, &cmdname, &signame, &userspec, &chuid, &execname, &pidfile); |
| 256 | 256 | ||
| 257 | quiet = (opt & SSD_OPT_QUIET) | 257 | quiet = (opt & OPT_QUIET) && !(opt & OPT_VERBOSE); |
| 258 | USE_FEATURE_START_STOP_DAEMON_FANCY(&& !(opt & SSD_OPT_VERBOSE)); | ||
| 259 | 258 | ||
| 260 | if (signame) { | 259 | if (signame) { |
| 261 | signal_nr = get_signum(signame); | 260 | signal_nr = get_signum(signame); |
| @@ -278,11 +277,9 @@ int start_stop_daemon_main(int argc, char **argv) | |||
| 278 | user_id = bb_xgetpwnam(userspec); | 277 | user_id = bb_xgetpwnam(userspec); |
| 279 | } | 278 | } |
| 280 | 279 | ||
| 281 | if (opt & SSD_CTX_STOP) { | 280 | if (opt & CTX_STOP) { |
| 282 | int i = do_stop(); | 281 | int i = do_stop(); |
| 283 | return | 282 | return (opt & OPT_OKNODO) ? 0 : (i<=0); |
| 284 | USE_FEATURE_START_STOP_DAEMON_FANCY((opt & SSD_OPT_OKNODO) | ||
| 285 | ? 0 :) !!(i<=0); | ||
| 286 | } | 283 | } |
| 287 | 284 | ||
| 288 | do_procinit(); | 285 | do_procinit(); |
| @@ -290,15 +287,14 @@ int start_stop_daemon_main(int argc, char **argv) | |||
| 290 | if (found) { | 287 | if (found) { |
| 291 | if (!quiet) | 288 | if (!quiet) |
| 292 | printf("%s already running\n%d\n", execname, found->pid); | 289 | printf("%s already running\n%d\n", execname, found->pid); |
| 293 | USE_FEATURE_START_STOP_DAEMON_FANCY(return !(opt & SSD_OPT_OKNODO);) | 290 | return !(opt & OPT_OKNODO); |
| 294 | SKIP_FEATURE_START_STOP_DAEMON_FANCY(return EXIT_FAILURE;) | ||
| 295 | } | 291 | } |
| 296 | *--argv = startas; | 292 | *--argv = startas; |
| 297 | if (opt & SSD_OPT_BACKGROUND) { | 293 | if (opt & OPT_BACKGROUND) { |
| 298 | xdaemon(0, 0); | 294 | xdaemon(0, 0); |
| 299 | setsid(); | 295 | setsid(); |
| 300 | } | 296 | } |
| 301 | if (opt & SSD_OPT_MAKEPID) { | 297 | if (opt & OPT_MAKEPID) { |
| 302 | /* user wants _us_ to make the pidfile */ | 298 | /* user wants _us_ to make the pidfile */ |
| 303 | FILE *pidf = xfopen(pidfile, "w"); | 299 | FILE *pidf = xfopen(pidfile, "w"); |
| 304 | 300 | ||
| @@ -313,7 +309,7 @@ int start_stop_daemon_main(int argc, char **argv) | |||
| 313 | xsetuid(user_id); | 309 | xsetuid(user_id); |
| 314 | } | 310 | } |
| 315 | #if ENABLE_FEATURE_START_STOP_DAEMON_FANCY | 311 | #if ENABLE_FEATURE_START_STOP_DAEMON_FANCY |
| 316 | if (opt & SSD_OPT_NICELEVEL) { | 312 | if (opt & OPT_NICELEVEL) { |
| 317 | /* Set process priority */ | 313 | /* Set process priority */ |
| 318 | int prio = getpriority(PRIO_PROCESS, 0) + xatoi_range(opt_N, INT_MIN/2, INT_MAX/2); | 314 | int prio = getpriority(PRIO_PROCESS, 0) + xatoi_range(opt_N, INT_MIN/2, INT_MAX/2); |
| 319 | if (setpriority(PRIO_PROCESS, 0, prio) < 0) { | 315 | if (setpriority(PRIO_PROCESS, 0, prio) < 0) { |
