diff options
-rw-r--r-- | doc/bird.sgml | 5 | ||||
-rw-r--r-- | sysdep/unix/main.c | 10 |
2 files changed, 13 insertions, 2 deletions
diff --git a/doc/bird.sgml b/doc/bird.sgml index db9a7474..4b72ac61 100644 --- a/doc/bird.sgml +++ b/doc/bird.sgml @@ -129,7 +129,10 @@ options. The most important ones are: enable debug messages and run bird in foreground. <tag>-D <m/filename of debug log/</tag> - log debugging information to given file instead of stderr + log debugging information to given file instead of stderr. + + <tag>-p</tag> + just parse the config file and exit. <tag>-s <m/name of communication socket/</tag> use given filename for a socket for communications with the client, default is <it/prefix/<file>/var/run/bird.ctl</file>. diff --git a/sysdep/unix/main.c b/sysdep/unix/main.c index 5e4aa97a..533754ea 100644 --- a/sysdep/unix/main.c +++ b/sysdep/unix/main.c @@ -365,7 +365,7 @@ signal_init(void) * Parsing of command-line arguments */ -static char *opt_list = "c:dD:s:"; +static char *opt_list = "c:dD:ps:"; static void usage(void) @@ -374,6 +374,8 @@ usage(void) exit(1); } +int parse_and_exit; + static void parse_args(int argc, char **argv) { @@ -402,6 +404,9 @@ parse_args(int argc, char **argv) log_init_debug(optarg); debug_flag |= 2; break; + case 'p': + parse_and_exit = 1; + break; case 's': path_control_socket = optarg; break; @@ -444,6 +449,9 @@ main(int argc, char **argv) read_config(); + if (parse_and_exit) + exit(0); + if (!debug_flag) { pid_t pid = fork(); |