pg_ctl

TriggerTek Logo
abcdefghijklmnopqrstuvwxyz_
PG_CTL(1)		PostgreSQL Server Applications		    PG_CTL(1)



NAME
       pg_ctl - start, stop, or restart a PostgreSQL server


SYNOPSIS
       pg_ctl  start  [	 -w  ]	[ -s ]	[ -D datadir ]	[ -l filename ]	 [ -o
       options ]  [ -p path ]

       pg_ctl stop [ -W ]  [ -s ]  [ -D datadir ]  [ -m
	 [ s[mart] ]  [ f[ast] ]  [ i[mmediate] ]
	]

       pg_ctl restart [ -w ]  [ -s ]  [ -D datadir ]  [ -m
	 [ s[mart] ]  [ f[ast] ]  [ i[mmediate] ]
	]  [ -o options ]

       pg_ctl reload [ -s ]  [ -D datadir ]

       pg_ctl status [ -D datadir ]

DESCRIPTION
       pg_ctl is a utility for starting, stopping, or  restarting  the	Post-
       greSQL  backend	server (postmaster(1)), or displaying the status of a
       running server. Although the server can be  started  manually,  pg_ctl
       encapsulates tasks such as redirecting log output and properly detach-
       ing from the terminal and process group. It also	 provides  convenient
       options for controlled shutdown.

       In  start mode, a new server is launched. The server is started in the
       background, and standard input is attached to /dev/null. The  standard
       output and standard error are either appended to a log file (if the -l
       option is used), or redirected to pg_ctl’s standard output (not	stan-
       dard  error).  If no log file is chosen, the standard output of pg_ctl
       should be redirected to a file or piped to another process, for	exam-
       ple a log rotating program, otherwise postmaster will write its output
       to the controlling terminal (from the background) and will  not	leave
       the shell’s process group.

       In  stop mode, the server that is running in the specified data direc-
       tory is shut down. Three different shutdown methods  can	 be  selected
       with  the  -m option: ‘‘Smart’’ mode waits for all the clients to dis-
       connect. This is the default. ‘‘Fast’’ mode does not wait for  clients
       to disconnect. All active transactions are rolled back and clients are
       forcibly disconnected, then the server  is  shut	 down.	‘‘Immediate’’
       mode  will  abort  all server processes without a clean shutdown. This
       will lead to a recovery run on restart.

       restart mode effectively executes a stop followed  by  a	 start.	 This
       allows changing the postmaster command-line options.

       reload mode simply sends the postmaster process a SIGHUP signal, caus-
       ing  it	to   reread   its   configuration   files   (postgresql.conf,
       pg_hba.conf, etc.). This allows changing of configuration-file options
       that do not require a complete restart to take effect.

       status mode checks whether a server is running in the  specified	 data
       directory.  If  it  is, the PID and the command line options that were
       used to invoke it are displayed.

OPTIONS
       -D datadir
	      Specifies the file system location of the	 database  files.  If
	      this is omitted, the environment variable PGDATA is used.

       -l filename
	      Append  the server log output to filename. If the file does not
	      exist, it is created. The umask is set to 077, so access to the
	      log file from other users is disallowed by default.

       -m mode
	      Specifies	 the shutdown mode. mode may be smart, fast, or imme-
	      diate, or the first letter of one of these three.

       -o options
	      Specifies options to be passed directly to the postmaster	 com-
	      mand.

	      The  options  are usually surrounded by single or double quotes
	      to ensure that they are passed through as a group.

       -p path
	      Specifies the location of the postmaster executable. By default
	      the  postmaster  executable is taken from the same directory as
	      pg_ctl, or failing that, the hard-wired installation directory.
	      It  is  not  necessary  to use this option unless you are doing
	      something unusual and get errors that the postmaster executable
	      was not found.

       -s     Only print errors, no informational messages.

       -w     Wait  for the start or shutdown to complete. Times out after 60
	      seconds. This is the default for shutdowns. A successful	shut-
	      down  is indicated by removal of the PID file. For starting up,
	      a successful psql -l indicates success. pg_ctl will attempt  to
	      use  the	proper	port  for  psql.  If the environment variable
	      PGPORT exists, that is used. Otherwise, it will see if  a	 port
	      has  been set in the postgresql.conf file.  If neither of those
	      is used, it will use the default port that PostgreSQL was	 com-
	      piled with (5432 by default).

       -W     Do  not  wait  for  start	 or shutdown to complete. This is the
	      default for starts and restarts.


ENVIRONMENT
       PGDATA Default data directory location.

       PGPORT Default port for psql(1) (used by the -w option).

       For others, see postmaster(1).


FILES
       postmaster.pid
	      The existence of this file in the data  directory	 is  used  to
	      help  pg_ctl  determine  if  the server is currently running or
	      not.

       postmaster.opts.default
	      If this file exists in the data  directory,  pg_ctl  (in	start
	      mode)  will  pass	 the  contents	of the file as options to the
	      postmaster command, unless overridden by the -o option.

       postmaster.opts
	      If this file exists in the data directory, pg_ctl	 (in  restart
	      mode)  will  pass	 the  contents	of the file as options to the
	      postmaster, unless overridden by the -o option. The contents of
	      this file are also displayed in status mode.

       postgresql.conf
	      This file, located in the data directory, is parsed to find the
	      proper port to use with psql when the  -w	 is  given  in	start
	      mode.

NOTES
       Waiting	for  complete  start  is not a well-defined operation and may
       fail if access control is set up so that a local client cannot connect
       without manual interaction (e.g., password authentication).

EXAMPLES
   STARTING THE SERVER
       To start up a server:

       $ pg_ctl start


       An  example of starting the server, blocking until the server has come
       up is:

       $ pg_ctl -w start


       For a server using port 5433, and running without fsync, use:

       $ pg_ctl -o "-F -p 5433" start


   STOPPING THE SERVER
       $ pg_ctl stop

       stops the server. Using the -m switch allows one to  control  how  the
       backend shuts down.

   RESTARTING THE SERVER
       Restarting  the server is almost equivalent to stopping the server and
       starting it again except that pg_ctl saves and reuses the command line
       options	that  were  passed  to	the  previously	 running instance. To
       restart the server in the simplest form, use:

       $ pg_ctl restart


       To restart server, waiting for it to shut down and to come up:

       $ pg_ctl -w restart


       To restart using port 5433 and disabling fsync after restarting:

       $ pg_ctl -o "-F -p 5433" restart


   SHOWING THE SERVER STATUS
       Here is a sample status output from pg_ctl:

       $ pg_ctl status
       pg_ctl: postmaster is running (pid: 13718)
       Command line was:
       /usr/local/pgsql/bin/postmaster ’-D’ ’/usr/local/pgsql/data’ ’-p’ ’5433’ ’-B’ ’128’

       This is the command line that would be invoked in restart mode.

SEE ALSO
       postmaster(1)



Application			  2008-01-03			    PG_CTL(1)