Main: Add -b to force background even in debug mode

This commit is contained in:
Jan Maria Matejka 2018-08-28 16:45:50 +02:00
parent a043f2d794
commit 89b0af3978

View file

@ -624,7 +624,7 @@ signal_init(void)
* Parsing of command-line arguments * 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; static int parse_and_exit;
char *bird_name; char *bird_name;
static char *use_user; static char *use_user;
@ -645,6 +645,7 @@ display_help(void)
fprintf(stderr, fprintf(stderr,
"\n" "\n"
"Options: \n" "Options: \n"
" -b Run bird in background\n"
" -c <config-file> Use given configuration file instead\n" " -c <config-file> Use given configuration file instead\n"
" of prefix/etc/bird.conf\n" " of prefix/etc/bird.conf\n"
" -d Enable debug messages and run bird in foreground\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) while ((c = getopt(argc, argv, opt_list)) >= 0)
switch (c) switch (c)
{ {
case 'b':
run_in_foreground = 0;
break;
case 'c': case 'c':
config_name = optarg; config_name = optarg;
config_changed = 1; config_changed = 1;
break; break;
case 'd': case 'd':
debug_flag |= 1; debug_flag |= 1;
run_in_foreground = 1;
break; break;
case 'D': case 'D':
log_init_debug(optarg); log_init_debug(optarg);
debug_flag |= 2; debug_flag |= 2;
run_in_foreground = 1;
break; break;
case 'p': case 'p':
parse_and_exit = 1; parse_and_exit = 1;
@ -857,7 +863,7 @@ main(int argc, char **argv)
if (parse_and_exit) if (parse_and_exit)
exit(0); exit(0);
if (!(debug_flag||run_in_foreground)) if (!run_in_foreground)
{ {
pid_t pid = fork(); pid_t pid = fork();
if (pid < 0) if (pid < 0)