diff -ur syslog-ng-3.1.1.orig/src/gprocess.c syslog-ng-3.1.1/src/gprocess.c --- syslog-ng-3.1.1.orig/src/gprocess.c 2009-12-15 05:00:28.000000000 -0800 +++ syslog-ng-3.1.1/src/gprocess.c 2010-05-08 19:30:12.000000000 -0700 @@ -1134,14 +1134,18 @@ /** * g_process_start: + * @force_foreground: force process mode to foreground * * Start the process as directed by the options set by various * g_process_set_*() functions. **/ void -g_process_start(void) +g_process_start(gboolean force_foreground) { pid_t pid; + + if (force_foreground) + process_opts.mode = G_PM_FOREGROUND; g_process_detach_tty(); g_process_change_limits(); diff -ur syslog-ng-3.1.1.orig/src/gprocess.h syslog-ng-3.1.1/src/gprocess.h --- syslog-ng-3.1.1.orig/src/gprocess.h 2009-11-25 11:47:45.000000000 -0800 +++ syslog-ng-3.1.1/src/gprocess.h 2010-05-08 19:28:55.000000000 -0700 @@ -70,7 +70,7 @@ void g_process_set_use_fdlimit(gboolean use); void g_process_set_check(gint check_period, gboolean (*check_fn)(void)); -void g_process_start(void); +void g_process_start(gboolean force_foreground); void g_process_startup_failed(guint ret_num, gboolean may_exit); void g_process_startup_ok(void); void g_process_finish(void); diff -ur syslog-ng-3.1.1.orig/src/main.c syslog-ng-3.1.1/src/main.c --- syslog-ng-3.1.1.orig/src/main.c 2010-03-14 10:22:50.000000000 -0700 +++ syslog-ng-3.1.1/src/main.c 2010-05-08 19:28:55.000000000 -0700 @@ -417,7 +417,7 @@ /* in this case we switch users early while retaining a limited set of * credentials in order to initialize/reinitialize the configuration. */ - g_process_start(); + g_process_start(syntax_only); rc = initial_init(&cfg); if (rc)