OSDN Git Service

Add 'reload' option to pg_ctl to send SIGHUP to the postmaster.
authorTom Lane <tgl@sss.pgh.pa.us>
Fri, 21 Sep 2001 21:10:56 +0000 (21:10 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Fri, 21 Sep 2001 21:10:56 +0000 (21:10 +0000)
doc/src/sgml/client-auth.sgml
doc/src/sgml/ref/pg_ctl-ref.sgml
src/bin/pg_ctl/pg_ctl.sh

index 33dba49..79d74a8 100644 (file)
@@ -1,4 +1,4 @@
-<!-- $Header: /cvsroot/pgsql/doc/src/sgml/client-auth.sgml,v 1.20 2001/09/21 20:31:41 tgl Exp $ -->
+<!-- $Header: /cvsroot/pgsql/doc/src/sgml/client-auth.sgml,v 1.21 2001/09/21 21:10:56 tgl Exp $ -->
 
 <chapter id="client-authentication">
  <title>Client Authentication</title>
@@ -333,9 +333,10 @@ hostssl <replaceable>database</replaceable> <replaceable>IP-address</replaceable
 
   <para>
    The <filename>pg_hba.conf</filename> file is loaded only on startup
-   and when the <application>postmaster</> receives a <systemitem>SIGHUP</systemitem> signal. If
-   you edit the file on an active system, you will need to issue a
-   <systemitem>SIGHUP</systemitem> to the <application>postmaster</> using <application>kill</>
+   and when the <application>postmaster</> receives a
+   <systemitem>SIGHUP</systemitem> signal. If you edit the file on an
+   active system, you will need to signal the <application>postmaster</>
+   (using <application>pg_ctl reload</> or <application>kill -HUP</>)
    to make it re-read the file.
   </para>
 
index 84022f9..668dd86 100644 (file)
@@ -1,5 +1,5 @@
 <!--
-$Header: /cvsroot/pgsql/doc/src/sgml/ref/pg_ctl-ref.sgml,v 1.8 2001/09/03 12:57:50 petere Exp $
+$Header: /cvsroot/pgsql/doc/src/sgml/ref/pg_ctl-ref.sgml,v 1.9 2001/09/21 21:10:56 tgl Exp $
 Postgres documentation
 -->
 
@@ -58,6 +58,11 @@ Postgres documentation
    <arg>-o <replaceable>options</replaceable></arg>
    <sbr>
    <command>pg_ctl</command>
+   <arg choice="plain">reload</arg>
+   <arg>-s</arg>
+   <arg>-D <replaceable>datadir</replaceable></arg>
+   <sbr>
+   <command>pg_ctl</command>
    <arg choice="plain">status</arg>
    <arg>-D <replaceable>datadir</replaceable></arg>
   </cmdsynopsis>
@@ -73,7 +78,7 @@ Postgres documentation
    the status of a running postmaster.  Although the postmaster can be
    started manually, <application>pg_ctl</application> encapulates
    tasks such as redirecting log output, properly detaching from the
-   terminal and process group, and additionally provides an option for
+   terminal and process group, and it provides convenient options for
    controlled shut down.
   </para>
 
@@ -93,7 +98,7 @@ Postgres documentation
   </para>
 
   <para>
-   In <option>stop</option> mode, the postmaster that is running on
+   In <option>stop</option> mode, the postmaster that is running in
    the specified data directory is shut down.  Three different
    shutdown methods can be selected with the <option>-m</option>
    option: <quote>Smart</quote> mode waits for all the clients to
@@ -101,7 +106,6 @@ Postgres documentation
    not wait for clients to disconnect.  All active transactions will
    be rolled back.  <quote>Immediate</quote> mode will abort without
    complete shutdown.  This will lead to a recovery run on restart.
-   By the default, stop mode waits for the shutdown to complete.
   </para>
 
   <para>
@@ -111,6 +115,14 @@ Postgres documentation
   </para>
 
   <para>
+   <option>reload</option> mode simply sends the postmaster a SIGHUP signal,
+   causing it to reread its configuration files
+   (<filename>postgresql.conf</filename>, <filename>pg_hba.conf</filename>,
+   etc).  This allows changing of configuration-file options that do not
+   require a complete restart to take effect.
+  </para>
+
+  <para>
    <option>status</option> mode checks whether a postmaster is running
    and if so displays the <acronym>PID</acronym> and the command line
    options that were used to invoke it.
@@ -188,7 +200,7 @@ Postgres documentation
       <term>-w</term>
       <listitem>
        <para>
-       Wait for the start or stutdown to complete.  Times out after
+       Wait for the start or shutdown to complete.  Times out after
        60 seconds.  This is the default for shutdowns.
        </para>
       </listitem>
index 997e34f..9bd6fc0 100755 (executable)
@@ -2,26 +2,27 @@
 #-------------------------------------------------------------------------
 #
 # pg_ctl.sh--
-#    Start/Stop/Restart/Report status of postmaster
+#    Start/Stop/Restart/HUP/Report status of postmaster
 #
 # Copyright (c) 2001  PostgreSQL Global Development Group
 #
 #
 # IDENTIFICATION
-#    $Header: /cvsroot/pgsql/src/bin/pg_ctl/Attic/pg_ctl.sh,v 1.23 2001/07/11 19:36:41 momjian Exp $
+#    $Header: /cvsroot/pgsql/src/bin/pg_ctl/Attic/pg_ctl.sh,v 1.24 2001/09/21 21:10:56 tgl Exp $
 #
 #-------------------------------------------------------------------------
 
 CMDNAME=`basename $0`
 
 help="\
-$CMDNAME is a utility to start, stop, restart, and report the status
-of a PostgreSQL server.
+$CMDNAME is a utility to start, stop, restart, reload configuration files,
+or report the status of a PostgreSQL server.
 
 Usage:
   $CMDNAME start   [-w] [-D DATADIR] [-s] [-l FILENAME] [-o \"OPTIONS\"]
   $CMDNAME stop    [-W] [-D DATADIR] [-s] [-m SHUTDOWN-MODE]
   $CMDNAME restart [-w] [-D DATADIR] [-s] [-m SHUTDOWN-MODE] [-o \"OPTIONS\"]
+  $CMDNAME reload  [-D DATADIR] [-s]
   $CMDNAME status  [-D DATADIR]
 
 Common options:
@@ -174,6 +175,9 @@ do
        restart)
            op="restart"
            ;;
+       reload)
+           op="reload"
+           ;;
        status)
            op="status"
            ;;
@@ -224,6 +228,10 @@ case "$shutdown_mode" in
        ;;
 esac
 
+if [ "$op" = "reload" ];then
+       sig="-HUP"
+       wait=no
+fi
 
 DEFPOSTOPTS=$PGDATA/postmaster.opts.default
 POSTOPTSFILE=$PGDATA/postmaster.opts
@@ -247,7 +255,7 @@ if [ "$op" = "status" ];then
     fi
 fi
 
-if [ "$op" = "stop" -o "$op" = "restart" ];then
+if [ "$op" = "stop" -o "$op" = "restart" -o "$op" = "reload" ];then
     if [ -f $PIDFILE ];then
        PID=`sed -n 1p $PIDFILE`
        if [ $PID -lt 0 ];then
@@ -281,7 +289,12 @@ if [ "$op" = "stop" -o "$op" = "restart" ];then
            done
            $silence_echo echo "done"
        fi
-       $silence_echo echo "postmaster successfully shut down"
+
+       if [ "$op" = "reload" ];then
+           $silence_echo echo "postmaster successfully signaled"
+       else
+           $silence_echo echo "postmaster successfully shut down"
+       fi
 
     else # ! -f $PIDFILE
        echo "$CMDNAME: cannot find $PIDFILE" 1>&2
@@ -292,7 +305,7 @@ if [ "$op" = "stop" -o "$op" = "restart" ];then
            exit 1
        fi
     fi
-fi # stop or restart
+fi # stop, restart, reload
 
 if [ "$op" = "start" -o "$op" = "restart" ];then
     oldpid=""