From 7ad001e0c5c9342eb0445e33f094d81ee6ccc7be Mon Sep 17 00:00:00 2001 From: Ian Barwick Date: Mon, 9 Mar 2015 08:21:54 +0900 Subject: [PATCH] Parse config file before daemonizing Daemonizing changes the current working directory to '/', which breaks configuration file parsing if the file is in the previous working directory and provided without an explicit path. Also it makes general sense to parse the configuration file before daemonizing. --- repmgrd.c | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/repmgrd.c b/repmgrd.c index 2ebb7df8..cb0a942f 100644 --- a/repmgrd.c +++ b/repmgrd.c @@ -218,6 +218,17 @@ main(int argc, char **argv) } } + /* + * Read the configuration file: repmgr.conf + */ + parse_config(config_file, &local_options); + if (local_options.node == -1) + { + log_err(_("Node information is missing. " + "Check the configuration file, or provide one if you have not done so.\n")); + terminate(ERR_BAD_CONFIG); + } + if (daemonize) { do_daemonize(); @@ -232,17 +243,6 @@ main(int argc, char **argv) setup_event_handlers(); #endif - /* - * Read the configuration file: repmgr.conf - */ - parse_config(config_file, &local_options); - if (local_options.node == -1) - { - log_err(_("Node information is missing. " - "Check the configuration file, or provide one if you have not done so.\n")); - terminate(ERR_BAD_CONFIG); - } - fd = freopen("/dev/null", "r", stdin); if (fd == NULL) {