diff --git a/doc/src/sgml/ref/pg_ctl-ref.sgml b/doc/src/sgml/ref/pg_ctl-ref.sgml
index 437281c26c0..f4200718c7a 100644
--- a/doc/src/sgml/ref/pg_ctl-ref.sgml
+++ b/doc/src/sgml/ref/pg_ctl-ref.sgml
@@ -1,5 +1,5 @@
@@ -21,9 +21,11 @@ PostgreSQL documentation
+
pg_ctl
start
-w
+ -t seconds
-s
-D datadir
-l filename
@@ -31,9 +33,11 @@ PostgreSQL documentation
-p path
-c
+
pg_ctl
stop
-W
+ -t seconds
-s
-D datadir
-m
@@ -44,9 +48,11 @@ PostgreSQL documentation
+
pg_ctl
restart
-w
+ -t seconds
-s
-D datadir
-c
@@ -59,20 +65,24 @@ PostgreSQL documentation
-o options
+
pg_ctl
reload
-s
-D datadir
+
pg_ctl
status
-D datadir
+
pg_ctl
kill
signal_name
process_id
+
pg_ctl
register
-N servicename
@@ -80,11 +90,14 @@ PostgreSQL documentation
-P password
-D datadir
-w
+ -t seconds
-o options
+
pg_ctl
unregister
-N servicename
+
@@ -261,12 +274,22 @@ PostgreSQL documentation
+
+
+
+
+ The number of seconds to wait when waiting for start or shutdown
+ to complete.
+
+
+
+
- Wait for the start or shutdown to complete. Times out after
- 60 seconds. This is the default for shutdowns. A successful
+ Wait for the start or shutdown to complete. The default wait time
+ is 60 seconds. This is the default option for shutdowns. A successful
shutdown is indicated by removal of the PID
file. For starting up, a successful psql -l
indicates success. pg_ctl will attempt to
diff --git a/src/bin/pg_ctl/pg_ctl.c b/src/bin/pg_ctl/pg_ctl.c
index 95adf93b2dc..83f4c862633 100644
--- a/src/bin/pg_ctl/pg_ctl.c
+++ b/src/bin/pg_ctl/pg_ctl.c
@@ -4,7 +4,7 @@
*
* Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
*
- * $PostgreSQL: pgsql/src/bin/pg_ctl/pg_ctl.c,v 1.85 2007/10/31 10:55:25 petere Exp $
+ * $PostgreSQL: pgsql/src/bin/pg_ctl/pg_ctl.c,v 1.86 2007/11/10 21:48:51 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -1465,21 +1465,22 @@ do_help(void)
printf(_("%s is a utility to start, stop, restart, reload configuration files,\n"
"report the status of a PostgreSQL server, or signal a PostgreSQL process.\n\n"), progname);
printf(_("Usage:\n"));
- printf(_(" %s start [-w] [-D DATADIR] [-s] [-l FILENAME] [-o \"OPTIONS\"]\n"), progname);
+ printf(_(" %s start [-w] [-t secs] [-D DATADIR] [-s] [-l FILENAME] [-o \"OPTIONS\"]\n"), progname);
printf(_(" %s stop [-W] [-D DATADIR] [-s] [-m SHUTDOWN-MODE]\n"), progname);
- printf(_(" %s restart [-w] [-D DATADIR] [-s] [-m SHUTDOWN-MODE] [-o \"OPTIONS\"]\n"), progname);
+ printf(_(" %s restart [-w] [-t secs] [-D DATADIR] [-s] [-m SHUTDOWN-MODE]\n [-o \"OPTIONS\"]\n"), progname);
printf(_(" %s reload [-D DATADIR] [-s]\n"), progname);
printf(_(" %s status [-D DATADIR]\n"), progname);
printf(_(" %s kill SIGNALNAME PID\n"), progname);
#if defined(WIN32) || defined(__CYGWIN__)
printf(_(" %s register [-N SERVICENAME] [-U USERNAME] [-P PASSWORD] [-D DATADIR]\n"
- " [-w] [-o \"OPTIONS\"]\n"), progname);
+ " [-w] [-t timeout] [-o \"OPTIONS\"]\n"), progname);
printf(_(" %s unregister [-N SERVICENAME]\n"), progname);
#endif
printf(_("\nCommon options:\n"));
printf(_(" -D, --pgdata DATADIR location of the database storage area\n"));
printf(_(" -s, --silent only print errors, no informational messages\n"));
+ printf(_(" -t secs seconds to wait when using -w option\n"));
printf(_(" -w wait until operation completes\n"));
printf(_(" -W do not wait until operation completes\n"));
printf(_(" --help show this help, then exit\n"));
@@ -1592,6 +1593,7 @@ main(int argc, char **argv)
{"mode", required_argument, NULL, 'm'},
{"pgdata", required_argument, NULL, 'D'},
{"silent", no_argument, NULL, 's'},
+ {"timeout", required_argument, NULL, 't'},
{"core-files", no_argument, NULL, 'c'},
{NULL, 0, NULL, 0}
};
@@ -1657,7 +1659,7 @@ main(int argc, char **argv)
/* process command-line options */
while (optind < argc)
{
- while ((c = getopt_long(argc, argv, "cD:l:m:N:o:p:P:sU:wW", long_options, &option_index)) != -1)
+ while ((c = getopt_long(argc, argv, "cD:l:m:N:o:p:P:st:U:wW", long_options, &option_index)) != -1)
{
switch (c)
{
@@ -1704,6 +1706,9 @@ main(int argc, char **argv)
case 's':
silent_mode = true;
break;
+ case 't':
+ wait_seconds = atoi(optarg);
+ break;
case 'U':
if (strchr(optarg, '\\'))
register_username = xstrdup(optarg);