]> granicus.if.org Git - postgresql/commitdiff
Have pg_ctl return an exit status of 3 if the server is not running, to
authorBruce Momjian <bruce@momjian.us>
Thu, 13 Oct 2011 17:01:56 +0000 (13:01 -0400)
committerBruce Momjian <bruce@momjian.us>
Thu, 13 Oct 2011 17:02:36 +0000 (13:02 -0400)
match the Linux Standard Base Core Specification 3.1.

Aaron W. Swenson

doc/src/sgml/ref/pg_ctl-ref.sgml
src/bin/pg_ctl/pg_ctl.c

index 07836e718f7027618c88fd98c938f64a39414933..7dc170ee89513da180f80a683bea1e15707d2931 100644 (file)
@@ -205,7 +205,8 @@ PostgreSQL documentation
    <option>status</option> mode checks whether a server is running in
    the specified data directory. If it is, the <acronym>PID</acronym>
    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>
index c9007eded92a6b9a99f003e018307dcda0e8e665..8e9d2cec3debf53eccb035995008c11bd91be4ef 100644 (file)
@@ -1155,9 +1155,11 @@ do_status(void)
        pgpid_t         pid;
 
        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;
                        if (postmaster_is_alive((pid_t) pid))
@@ -1168,7 +1170,7 @@ do_status(void)
                        }
                }
                else
-                       /* postmaster */
+               /* must be a postmaster */
                {
                        if (postmaster_is_alive((pid_t) pid))
                        {
@@ -1186,7 +1188,11 @@ do_status(void)
                }
        }
        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);
 }