Commit 12ff9fa7 authored by Bruce Momjian's avatar Bruce Momjian

Have pg_ctl return an exit status of 3 if the server is not running, to

match the Linux Standard Base Core Specification 3.1.

Aaron W. Swenson
parent de1bf53a
...@@ -205,7 +205,8 @@ PostgreSQL documentation ...@@ -205,7 +205,8 @@ PostgreSQL documentation
<option>status</option> mode checks whether a server is running in <option>status</option> mode checks whether a server is running in
the specified data directory. If it is, the <acronym>PID</acronym> the specified data directory. If it is, the <acronym>PID</acronym>
and the command line options that were used to invoke it are and the command line options that were used to invoke it are
displayed. displayed. If the server is not running, the process returns an
exit status of 3.
</para> </para>
<para> <para>
......
...@@ -1155,9 +1155,11 @@ do_status(void) ...@@ -1155,9 +1155,11 @@ do_status(void)
pgpid_t pid; pgpid_t pid;
pid = get_pgpid(); pid = get_pgpid();
if (pid != 0) /* 0 means no pid file */ /* Is there a pid file? */
if (pid != 0)
{ {
if (pid < 0) /* standalone backend */ /* standalone backend? */
if (pid < 0)
{ {
pid = -pid; pid = -pid;
if (postmaster_is_alive((pid_t) pid)) if (postmaster_is_alive((pid_t) pid))
...@@ -1168,7 +1170,7 @@ do_status(void) ...@@ -1168,7 +1170,7 @@ do_status(void)
} }
} }
else else
/* postmaster */ /* must be a postmaster */
{ {
if (postmaster_is_alive((pid_t) pid)) if (postmaster_is_alive((pid_t) pid))
{ {
...@@ -1186,7 +1188,11 @@ do_status(void) ...@@ -1186,7 +1188,11 @@ do_status(void)
} }
} }
printf(_("%s: no server running\n"), progname); printf(_("%s: no server running\n"), progname);
exit(1); /*
* The Linux Standard Base Core Specification 3.1 says this should return '3'
* http://refspecs.freestandards.org/LSB_3.1.1/LSB-Core-generic/LSB-Core-generic/iniscrptact.html
*/
exit(3);
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment