From 196700c372d6ba9d13f1a38cf6b9a4cef3f0f013 Mon Sep 17 00:00:00 2001 From: Tom Lane <tgl@sss.pgh.pa.us> Date: Fri, 21 Sep 2001 21:10:56 +0000 Subject: [PATCH] Add 'reload' option to pg_ctl to send SIGHUP to the postmaster. --- doc/src/sgml/client-auth.sgml | 9 +++++---- doc/src/sgml/ref/pg_ctl-ref.sgml | 22 +++++++++++++++++----- src/bin/pg_ctl/pg_ctl.sh | 27 ++++++++++++++++++++------- 3 files changed, 42 insertions(+), 16 deletions(-) diff --git a/doc/src/sgml/client-auth.sgml b/doc/src/sgml/client-auth.sgml index 33dba495df8..79d74a83a09 100644 --- a/doc/src/sgml/client-auth.sgml +++ b/doc/src/sgml/client-auth.sgml @@ -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> diff --git a/doc/src/sgml/ref/pg_ctl-ref.sgml b/doc/src/sgml/ref/pg_ctl-ref.sgml index 84022f9f695..668dd861cab 100644 --- a/doc/src/sgml/ref/pg_ctl-ref.sgml +++ b/doc/src/sgml/ref/pg_ctl-ref.sgml @@ -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> @@ -110,6 +114,14 @@ Postgres documentation options. </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 @@ -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> diff --git a/src/bin/pg_ctl/pg_ctl.sh b/src/bin/pg_ctl/pg_ctl.sh index 997e34f6dd9..9bd6fc05cc4 100755 --- a/src/bin/pg_ctl/pg_ctl.sh +++ b/src/bin/pg_ctl/pg_ctl.sh @@ -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="" -- GitLab