diff options
author | Jan Maria Matejka <mq@ucw.cz> | 2018-08-28 16:45:50 +0200 |
---|---|---|
committer | Jan Maria Matejka <mq@ucw.cz> | 2018-08-28 16:48:52 +0200 |
commit | 89b0af3978caf15e1478922a8d9d4f7e38145a61 (patch) | |
tree | ec8ac027a90abf435b1b602b332a5ee666b27607 | |
parent | a043f2d79488cdfbc4d97ac0bad4926d29bf9a82 (diff) |
Main: Add -b to force background even in debug mode
-rw-r--r-- | sysdep/unix/main.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/sysdep/unix/main.c b/sysdep/unix/main.c index ea1476e7..0912a9c5 100644 --- a/sysdep/unix/main.c +++ b/sysdep/unix/main.c @@ -624,7 +624,7 @@ signal_init(void) * Parsing of command-line arguments */ -static char *opt_list = "c:dD:ps:P:u:g:flRh"; +static char *opt_list = "bc:dD:ps:P:u:g:flRh"; static int parse_and_exit; char *bird_name; static char *use_user; @@ -645,6 +645,7 @@ display_help(void) fprintf(stderr, "\n" "Options: \n" + " -b Run bird in background\n" " -c <config-file> Use given configuration file instead\n" " of prefix/etc/bird.conf\n" " -d Enable debug messages and run bird in foreground\n" @@ -749,16 +750,21 @@ parse_args(int argc, char **argv) while ((c = getopt(argc, argv, opt_list)) >= 0) switch (c) { + case 'b': + run_in_foreground = 0; + break; case 'c': config_name = optarg; config_changed = 1; break; case 'd': debug_flag |= 1; + run_in_foreground = 1; break; case 'D': log_init_debug(optarg); debug_flag |= 2; + run_in_foreground = 1; break; case 'p': parse_and_exit = 1; @@ -857,7 +863,7 @@ main(int argc, char **argv) if (parse_and_exit) exit(0); - if (!(debug_flag||run_in_foreground)) + if (!run_in_foreground) { pid_t pid = fork(); if (pid < 0) |