Man Pages

pg_ctl(1) - phpMan pg_ctl(1) - phpMan

Command: man perldoc info search(apropos)  

PG_CTL(1)               PostgreSQL Server Applications               PG_CTL(1)

       pg_ctl - start, stop, or restart a PostgreSQL server

       pg_ctl start [ -w ]  [ -t seconds ]  [ -s ]  [ -D datadir ]  [ -l filename ]  [ -o options ]  [ -p path ]  [ -c

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

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

       pg_ctl reload [ -s ]  [ -D datadir ]

       pg_ctl status [ -D datadir ]

       pg_ctl kill signal_name process_id

       pg_ctl register [ -N servicename ]  [ -U username ]  [ -P password ]  [ -D datadir ]  [ -w ]  [ -t seconds ]  [
       -s ]  [ -o options ]

       pg_ctl unregister [ -N servicename ]

       pg_ctl  is a utility for starting, stopping, or restarting the PostgreSQL backend server (postgres(1)), or dis-
       playing the status of a running server. Although the server can be started manually, pg_ctl encapsulates  tasks
       such  as  redirecting  log  output and properly detaching 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 standard error). If no log file is chosen,  the
       standard  output  of  pg_ctl  should be redirected to a file or piped to another process such as a log rotating
       program like rotatelogs; otherwise postgres will write its output to the controlling terminal (from  the  back-
       ground) and will not leave the shell's process group.

       In stop mode, the server that is running in the specified data directory is shut down. Three different shutdown
       methods can be selected with the -m option: ''Smart'' mode waits for online backup mode to finish and  all  the
       clients  to  disconnect.  This  is the default.  ''Fast'' mode does not wait for clients to disconnect and will
       terminate an online backup in progress. All active transactions are rolled back and clients are  forcibly  dis-
       connected,  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  postgres  command-line

       reload  mode  simply  sends  the postgres process a SIGHUP signal, causing 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 com-
       mand line options that were used to invoke it are displayed.

       kill mode allows you to send a signal to a specified process. This is particularly valuable for Microsoft  Win-
       dows which does not have a kill command. Use --help to see a list of supported signal names.

       register mode allows you to register a system service on Microsoft Windows.

       unregister  mode allows you to unregister a system service on Microsoft Windows, previously registered with the
       register command.

       -c     Attempt to allow server crashes to produce core files, on platforms where this available, by lifting any
              soft  resource  limit  placed on them.  This is useful in debugging or diagnosing problems by allowing a
              stack trace to be obtained from a failed server process.

       -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 can be smart, fast, or immediate, or the first letter of one of  these

       -o options
              Specifies options to be passed directly to the postgres command.

              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 postgres executable. By default the postgres 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 postgres  executable  was
              not found.

       -s     Only print errors, no informational messages.

       -t     The number of seconds to wait when waiting for start or shutdown to complete.

       -w     Wait  for  the  start  or shutdown to complete. The default wait time is 60 seconds. This is the default
              option for shutdowns. A successful shutdown 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 envi-
              ronment variable PGPORT exists, that is used. Otherwise, it will see if a port has been set in the post-
              gresql.conf  file.   If  neither of those is used, it will use the default port that PostgreSQL was com-
              piled with (5432 by default). When waiting, pg_ctl will return an accurate exit code based on  the  suc-
              cess of the startup or shutdown.

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

       -N servicename
              Name  of  the system service to register. The name will be used as both the service name and the display

       -P password
              Password for the user to start the service.

       -U username
              User name for the user to start the service. For domain users, use the format DOMAIN\username.

       PGDATA Default data directory location.

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

       For additional server variables, see postgres(1).  This utility, like most  other  PostgreSQL  utilities,  also
       uses the environment variables supported by libpq (see in the documentation).

              The  existence of this file in the data directory is used to help pg_ctl determine if the server is cur-
              rently running or not.

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

              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.

       Waiting for complete start is not a well-defined operation and might fail if access control is set up so that a
       local client cannot connect without manual interaction (e.g., password authentication). For additional  connec-
       tion variables, see in the documentation, and for passwords, also see in the documentation.

       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

       $ pg_ctl stop

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

       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

       Here is a sample status output from pg_ctl:

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

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


Application                       2014-02-17                         PG_CTL(1)