|
4 | 4 | *
|
5 | 5 | * Portions Copyright (c) 1996-2003, PostgreSQL Global Development Group
|
6 | 6 | *
|
7 |
| - * $PostgreSQL: pgsql/src/bin/pg_ctl/pg_ctl.c,v 1.26 2004/08/28 21:01:38 momjian Exp $ |
| 7 | + * $PostgreSQL: pgsql/src/bin/pg_ctl/pg_ctl.c,v 1.27 2004/08/28 22:04:01 momjian Exp $ |
8 | 8 | *
|
9 | 9 | *-------------------------------------------------------------------------
|
10 | 10 | */
|
@@ -67,6 +67,7 @@ static ShutdownMode shutdown_mode = SMART_MODE;
|
67 | 67 | static int sig = SIGTERM; /* default */
|
68 | 68 | static CtlCommand ctl_command = NO_COMMAND;
|
69 | 69 | static char *pg_data = NULL;
|
| 70 | +static char *pgdata_opt = NULL; |
70 | 71 | static char *post_opts = NULL;
|
71 | 72 | static const char *progname;
|
72 | 73 | static char *log_file = NULL;
|
@@ -309,19 +310,20 @@ start_postmaster(void)
|
309 | 310 | */
|
310 | 311 | if (log_file != NULL)
|
311 | 312 | #ifndef WIN32
|
312 |
| - snprintf(cmd, MAXPGPATH, "%s\"%s\" %s < \"%s\" >> \"%s\" 2>&1 &%s", |
| 313 | + snprintf(cmd, MAXPGPATH, "%s\"%s\" %s%s < \"%s\" >> \"%s\" 2>&1 &%s", |
313 | 314 | #else
|
314 |
| - snprintf(cmd, MAXPGPATH, "%sSTART /B \"\" \"%s\" %s < \"%s\" >> \"%s\" 2>&1%s", |
| 315 | + snprintf(cmd, MAXPGPATH, "%sSTART /B \"\" \"%s\" %s%s < \"%s\" >> \"%s\" 2>&1%s", |
315 | 316 | #endif
|
316 |
| - SYSTEMQUOTE, postgres_path, post_opts, DEVNULL, log_file, |
317 |
| - SYSTEMQUOTE); |
| 317 | + SYSTEMQUOTE, postgres_path, pgdata_opt, post_opts, |
| 318 | + DEVNULL, log_file, SYSTEMQUOTE); |
318 | 319 | else
|
319 | 320 | #ifndef WIN32
|
320 |
| - snprintf(cmd, MAXPGPATH, "%s\"%s\" %s < \"%s\" 2>&1 &%s", |
| 321 | + snprintf(cmd, MAXPGPATH, "%s\"%s\" %s%s < \"%s\" 2>&1 &%s", |
321 | 322 | #else
|
322 |
| - snprintf(cmd, MAXPGPATH, "%sSTART /B \"\" \"%s\" %s < \"%s\" 2>&1%s", |
| 323 | + snprintf(cmd, MAXPGPATH, "%sSTART /B \"\" \"%s\" %s%s < \"%s\" 2>&1%s", |
323 | 324 | #endif
|
324 |
| - SYSTEMQUOTE, postgres_path, post_opts, DEVNULL, SYSTEMQUOTE); |
| 325 | + SYSTEMQUOTE, postgres_path, pgdata_opt, post_opts, |
| 326 | + DEVNULL, SYSTEMQUOTE); |
325 | 327 |
|
326 | 328 | return system(cmd);
|
327 | 329 | }
|
@@ -494,6 +496,10 @@ do_start(void)
|
494 | 496 | }
|
495 | 497 | }
|
496 | 498 |
|
| 499 | + /* No -D or -D already added during server start */ |
| 500 | + if (ctl_command == RESTART_COMMAND || pgdata_opt == NULL) |
| 501 | + pgdata_opt = ""; |
| 502 | + |
497 | 503 | if (postgres_path == NULL)
|
498 | 504 | {
|
499 | 505 | char *postmaster_path;
|
@@ -1210,6 +1216,9 @@ main(int argc, char **argv)
|
1210 | 1216 | env_var = xmalloc(len + 8);
|
1211 | 1217 | snprintf(env_var, len + 8, "PGDATA=%s", optarg);
|
1212 | 1218 | putenv(env_var);
|
| 1219 | + /* Show -D for easier postmaster 'ps' identification */ |
| 1220 | + pgdata_opt = xmalloc(len + 7); |
| 1221 | + snprintf(pgdata_opt, len + 7, "-D \"%s\" ", optarg); |
1213 | 1222 | break;
|
1214 | 1223 | }
|
1215 | 1224 | case 'l':
|
|
0 commit comments