Commit 196700c3 authored by Tom Lane's avatar Tom Lane

Add 'reload' option to pg_ctl to send SIGHUP to the postmaster.

parent c1c888a9
<!-- $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"> <chapter id="client-authentication">
<title>Client Authentication</title> <title>Client Authentication</title>
...@@ -333,9 +333,10 @@ hostssl <replaceable>database</replaceable> <replaceable>IP-address</replaceable ...@@ -333,9 +333,10 @@ hostssl <replaceable>database</replaceable> <replaceable>IP-address</replaceable
<para> <para>
The <filename>pg_hba.conf</filename> file is loaded only on startup The <filename>pg_hba.conf</filename> file is loaded only on startup
and when the <application>postmaster</> receives a <systemitem>SIGHUP</systemitem> signal. If and when the <application>postmaster</> receives a
you edit the file on an active system, you will need to issue a <systemitem>SIGHUP</systemitem> signal. If you edit the file on an
<systemitem>SIGHUP</systemitem> to the <application>postmaster</> using <application>kill</> 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. to make it re-read the file.
</para> </para>
......
<!-- <!--
$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 Postgres documentation
--> -->
...@@ -58,6 +58,11 @@ Postgres documentation ...@@ -58,6 +58,11 @@ Postgres documentation
<arg>-o <replaceable>options</replaceable></arg> <arg>-o <replaceable>options</replaceable></arg>
<sbr> <sbr>
<command>pg_ctl</command> <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 choice="plain">status</arg>
<arg>-D <replaceable>datadir</replaceable></arg> <arg>-D <replaceable>datadir</replaceable></arg>
</cmdsynopsis> </cmdsynopsis>
...@@ -73,7 +78,7 @@ Postgres documentation ...@@ -73,7 +78,7 @@ Postgres documentation
the status of a running postmaster. Although the postmaster can be the status of a running postmaster. Although the postmaster can be
started manually, <application>pg_ctl</application> encapulates started manually, <application>pg_ctl</application> encapulates
tasks such as redirecting log output, properly detaching from the 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. controlled shut down.
</para> </para>
...@@ -93,7 +98,7 @@ Postgres documentation ...@@ -93,7 +98,7 @@ Postgres documentation
</para> </para>
<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 the specified data directory is shut down. Three different
shutdown methods can be selected with the <option>-m</option> shutdown methods can be selected with the <option>-m</option>
option: <quote>Smart</quote> mode waits for all the clients to option: <quote>Smart</quote> mode waits for all the clients to
...@@ -101,7 +106,6 @@ Postgres documentation ...@@ -101,7 +106,6 @@ Postgres documentation
not wait for clients to disconnect. All active transactions will not wait for clients to disconnect. All active transactions will
be rolled back. <quote>Immediate</quote> mode will abort without be rolled back. <quote>Immediate</quote> mode will abort without
complete shutdown. This will lead to a recovery run on restart. complete shutdown. This will lead to a recovery run on restart.
By the default, stop mode waits for the shutdown to complete.
</para> </para>
<para> <para>
...@@ -110,6 +114,14 @@ Postgres documentation ...@@ -110,6 +114,14 @@ Postgres documentation
options. options.
</para> </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> <para>
<option>status</option> mode checks whether a postmaster is running <option>status</option> mode checks whether a postmaster is running
and if so displays the <acronym>PID</acronym> and the command line and if so displays the <acronym>PID</acronym> and the command line
...@@ -188,7 +200,7 @@ Postgres documentation ...@@ -188,7 +200,7 @@ Postgres documentation
<term>-w</term> <term>-w</term>
<listitem> <listitem>
<para> <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. 60 seconds. This is the default for shutdowns.
</para> </para>
</listitem> </listitem>
......
...@@ -2,26 +2,27 @@ ...@@ -2,26 +2,27 @@
#------------------------------------------------------------------------- #-------------------------------------------------------------------------
# #
# pg_ctl.sh-- # 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 # Copyright (c) 2001 PostgreSQL Global Development Group
# #
# #
# IDENTIFICATION # 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` CMDNAME=`basename $0`
help="\ help="\
$CMDNAME is a utility to start, stop, restart, and report the status $CMDNAME is a utility to start, stop, restart, reload configuration files,
of a PostgreSQL server. or report the status of a PostgreSQL server.
Usage: Usage:
$CMDNAME start [-w] [-D DATADIR] [-s] [-l FILENAME] [-o \"OPTIONS\"] $CMDNAME start [-w] [-D DATADIR] [-s] [-l FILENAME] [-o \"OPTIONS\"]
$CMDNAME stop [-W] [-D DATADIR] [-s] [-m SHUTDOWN-MODE] $CMDNAME stop [-W] [-D DATADIR] [-s] [-m SHUTDOWN-MODE]
$CMDNAME restart [-w] [-D DATADIR] [-s] [-m SHUTDOWN-MODE] [-o \"OPTIONS\"] $CMDNAME restart [-w] [-D DATADIR] [-s] [-m SHUTDOWN-MODE] [-o \"OPTIONS\"]
$CMDNAME reload [-D DATADIR] [-s]
$CMDNAME status [-D DATADIR] $CMDNAME status [-D DATADIR]
Common options: Common options:
...@@ -174,6 +175,9 @@ do ...@@ -174,6 +175,9 @@ do
restart) restart)
op="restart" op="restart"
;; ;;
reload)
op="reload"
;;
status) status)
op="status" op="status"
;; ;;
...@@ -224,6 +228,10 @@ case "$shutdown_mode" in ...@@ -224,6 +228,10 @@ case "$shutdown_mode" in
;; ;;
esac esac
if [ "$op" = "reload" ];then
sig="-HUP"
wait=no
fi
DEFPOSTOPTS=$PGDATA/postmaster.opts.default DEFPOSTOPTS=$PGDATA/postmaster.opts.default
POSTOPTSFILE=$PGDATA/postmaster.opts POSTOPTSFILE=$PGDATA/postmaster.opts
...@@ -247,7 +255,7 @@ if [ "$op" = "status" ];then ...@@ -247,7 +255,7 @@ if [ "$op" = "status" ];then
fi fi
fi fi
if [ "$op" = "stop" -o "$op" = "restart" ];then if [ "$op" = "stop" -o "$op" = "restart" -o "$op" = "reload" ];then
if [ -f $PIDFILE ];then if [ -f $PIDFILE ];then
PID=`sed -n 1p $PIDFILE` PID=`sed -n 1p $PIDFILE`
if [ $PID -lt 0 ];then if [ $PID -lt 0 ];then
...@@ -281,7 +289,12 @@ if [ "$op" = "stop" -o "$op" = "restart" ];then ...@@ -281,7 +289,12 @@ if [ "$op" = "stop" -o "$op" = "restart" ];then
done done
$silence_echo echo "done" $silence_echo echo "done"
fi fi
if [ "$op" = "reload" ];then
$silence_echo echo "postmaster successfully signaled"
else
$silence_echo echo "postmaster successfully shut down" $silence_echo echo "postmaster successfully shut down"
fi
else # ! -f $PIDFILE else # ! -f $PIDFILE
echo "$CMDNAME: cannot find $PIDFILE" 1>&2 echo "$CMDNAME: cannot find $PIDFILE" 1>&2
...@@ -292,7 +305,7 @@ if [ "$op" = "stop" -o "$op" = "restart" ];then ...@@ -292,7 +305,7 @@ if [ "$op" = "stop" -o "$op" = "restart" ];then
exit 1 exit 1
fi fi
fi fi
fi # stop or restart fi # stop, restart, reload
if [ "$op" = "start" -o "$op" = "restart" ];then if [ "$op" = "start" -o "$op" = "restart" ];then
oldpid="" oldpid=""
......
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