From e603498f438b4d8049a079c3495c991352617f8f 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 7dd5c38d..383315da 100644 --- a/repmgrd.c +++ b/repmgrd.c @@ -202,6 +202,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(); @@ -216,17 +227,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) {