mirror of
https://abf.rosa.ru/djam/postgresql-pgpool-II.git
synced 2025-02-23 07:02:47 +00:00
71 lines
2.3 KiB
Diff
71 lines
2.3 KiB
Diff
diff --git a/main.c b/main.c
|
|
index 431c660..fbfa626 100644
|
|
--- a/main.c
|
|
+++ b/main.c
|
|
@@ -141,6 +141,7 @@ static int pcp_inet_fd; /* inet domain socket fd for PCP */
|
|
static char pcp_conf_file[POOLMAXPATHLEN+1]; /* path for pcp.conf */
|
|
static char conf_file[POOLMAXPATHLEN+1];
|
|
static char hba_file[POOLMAXPATHLEN+1];
|
|
+static char log_file[POOLMAXPATHLEN+1]; /* redirection file of stdout/stderr when running as daemon */
|
|
|
|
static int exiting = 0; /* non 0 if I'm exiting */
|
|
static int switching = 0; /* non 0 if I'm fail overing or degenerating */
|
|
@@ -194,6 +195,7 @@ int main(int argc, char **argv)
|
|
{"config-file", required_argument, NULL, 'f'},
|
|
{"pcp-file", required_argument, NULL, 'F'},
|
|
{"help", no_argument, NULL, 'h'},
|
|
+ {"log", required_argument, NULL, 'l'},
|
|
{"mode", required_argument, NULL, 'm'},
|
|
{"dont-detach", no_argument, NULL, 'n'},
|
|
{"discard-status", no_argument, NULL, 'D'},
|
|
@@ -207,8 +209,10 @@ int main(int argc, char **argv)
|
|
snprintf(conf_file, sizeof(conf_file), "%s/%s", DEFAULT_CONFIGDIR, POOL_CONF_FILE_NAME);
|
|
snprintf(pcp_conf_file, sizeof(pcp_conf_file), "%s/%s", DEFAULT_CONFIGDIR, PCP_PASSWD_FILE_NAME);
|
|
snprintf(hba_file, sizeof(hba_file), "%s/%s", DEFAULT_CONFIGDIR, HBA_CONF_FILE_NAME);
|
|
+ snprintf(log_file, sizeof(log_file), "%s", DEFAULT_LOG_FILE);
|
|
|
|
- while ((opt = getopt_long(argc, argv, "a:cdf:F:hm:nDv", long_options, &optindex)) != -1)
|
|
+
|
|
+ while ((opt = getopt_long(argc, argv, "a:cdf:F:hl:m:nDv", long_options, &optindex)) != -1)
|
|
{
|
|
switch (opt)
|
|
{
|
|
@@ -252,6 +256,15 @@ int main(int argc, char **argv)
|
|
exit(0);
|
|
break;
|
|
|
|
+ case 'l': /* specify log file */
|
|
+ if (!optarg)
|
|
+ {
|
|
+ usage();
|
|
+ exit(1);
|
|
+ }
|
|
+ strncpy(log_file, optarg, sizeof(log_file));
|
|
+ break;
|
|
+
|
|
case 'm': /* stop mode */
|
|
if (!optarg)
|
|
{
|
|
@@ -758,7 +771,7 @@ static void daemonize(void)
|
|
|
|
rc_chdir = chdir("/");
|
|
|
|
- i = open("/dev/null", O_RDWR);
|
|
+ i = open(log_file, O_RDWR|O_CREAT|O_APPEND, S_IRUSR|S_IWUSR);
|
|
dup2(i, 0);
|
|
dup2(i, 1);
|
|
dup2(i, 2);
|
|
diff --git a/pool.h b/pool.h
|
|
index 9716c02..3aafc75 100644
|
|
--- a/pool.h
|
|
+++ b/pool.h
|
|
@@ -66,6 +66,9 @@
|
|
/* pid file name */
|
|
#define DEFAULT_PID_FILE_NAME "/var/run/pgpool/pgpool.pid"
|
|
|
|
+/* daemon log file */
|
|
+#define DEFAULT_LOG_FILE "/dev/null"
|
|
+
|
|
/* status file name */
|
|
#define STATUS_FILE_NAME "pgpool_status"
|
|
|