From 0aae96008fb67f6ba2decaab87c6b151ade7d1e0 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 ad4dcd9b..03c9c2f1 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) {