]> begriffs open source - ai-pg/blob - full-docs/txt/app-pg-ctl.txt
Convert HTML docs to more streamlined TXT
[ai-pg] / full-docs / txt / app-pg-ctl.txt
1
2 pg_ctl
3
4    pg_ctl — initialize, start, stop, or control a PostgreSQL server
5
6 Synopsis
7
8    pg_ctl init[db] [-D datadir] [-s] [-o initdb-options]
9
10    pg_ctl start [-D datadir] [-l filename] [-W] [-t seconds] [-s] [-o
11    options] [-p path] [-c]
12
13    pg_ctl stop [-D datadir] [-m s[mart] | f[ast] | i[mmediate] ] [-W] [-t
14    seconds] [-s]
15
16    pg_ctl restart [-D datadir] [-m s[mart] | f[ast] | i[mmediate] ] [-W]
17    [-t seconds] [-s] [-o options] [-c]
18
19    pg_ctl reload [-D datadir] [-s]
20
21    pg_ctl status [-D datadir]
22
23    pg_ctl promote [-D datadir] [-W] [-t seconds] [-s]
24
25    pg_ctl logrotate [-D datadir] [-s]
26
27    pg_ctl kill signal_name process_id
28
29    On Microsoft Windows, also:
30
31    pg_ctl register [-D datadir] [-N servicename] [-U username] [-P
32    password] [-S a[uto] | d[emand] ] [-e source] [-W] [-t seconds] [-s]
33    [-o options]
34
35    pg_ctl unregister [-N servicename]
36
37 Description
38
39    pg_ctl is a utility for initializing a PostgreSQL database cluster,
40    starting, stopping, or restarting the PostgreSQL database server
41    (postgres), or displaying the status of a running server. Although the
42    server can be started manually, pg_ctl encapsulates tasks such as
43    redirecting log output and properly detaching from the terminal and
44    process group. It also provides convenient options for controlled
45    shutdown.
46
47    The init or initdb mode creates a new PostgreSQL database cluster, that
48    is, a collection of databases that will be managed by a single server
49    instance. This mode invokes the initdb command. See initdb for details.
50
51    start mode launches a new server. The server is started in the
52    background, and its standard input is attached to /dev/null (or nul on
53    Windows). On Unix-like systems, by default, the server's standard
54    output and standard error are sent to pg_ctl's standard output (not
55    standard error). The standard output of pg_ctl should then be
56    redirected to a file or piped to another process such as a log rotating
57    program like rotatelogs; otherwise postgres will write its output to
58    the controlling terminal (from the background) and will not leave the
59    shell's process group. On Windows, by default the server's standard
60    output and standard error are sent to the terminal. These default
61    behaviors can be changed by using -l to append the server's output to a
62    log file. Use of either -l or output redirection is recommended.
63
64    stop mode shuts down the server that is running in the specified data
65    directory. Three different shutdown methods can be selected with the -m
66    option. “Smart” mode disallows new connections, then waits for all
67    existing clients to disconnect. If the server is in hot standby,
68    recovery and streaming replication will be terminated once all clients
69    have disconnected. “Fast” mode (the default) does not wait for clients
70    to disconnect. All active transactions are rolled back and clients are
71    forcibly disconnected, then the server is shut down. “Immediate” mode
72    will abort all server processes immediately, without a clean shutdown.
73    This choice will lead to a crash-recovery cycle during the next server
74    start.
75
76    restart mode effectively executes a stop followed by a start. This
77    allows changing the postgres command-line options, or changing
78    configuration-file options that cannot be changed without restarting
79    the server. If relative paths were used on the command line during
80    server start, restart might fail unless pg_ctl is executed in the same
81    current directory as it was during server start.
82
83    reload mode simply sends the postgres server process a SIGHUP signal,
84    causing it to reread its configuration files (postgresql.conf,
85    pg_hba.conf, etc.). This allows changing configuration-file options
86    that do not require a full server restart to take effect.
87
88    status mode checks whether a server is running in the specified data
89    directory. If it is, the server's PID and the command line options that
90    were used to invoke it are displayed. If the server is not running,
91    pg_ctl returns an exit status of 3. If an accessible data directory is
92    not specified, pg_ctl returns an exit status of 4.
93
94    promote mode commands the standby server that is running in the
95    specified data directory to end standby mode and begin read-write
96    operations.
97
98    logrotate mode rotates the server log file. For details on how to use
99    this mode with external log rotation tools, see Section 24.3.
100
101    kill mode sends a signal to a specified process. This is primarily
102    valuable on Microsoft Windows which does not have a built-in kill
103    command. Use --help to see a list of supported signal names.
104
105    register mode registers the PostgreSQL server as a system service on
106    Microsoft Windows. The -S option allows selection of service start
107    type, either “auto” (start service automatically on system startup) or
108    “demand” (start service on demand).
109
110    unregister mode unregisters a system service on Microsoft Windows. This
111    undoes the effects of the register command.
112
113 Options
114
115    -c
116           --core-files
117           Attempt to allow server crashes to produce core files, on
118           platforms where this is possible, by lifting any soft resource
119           limit placed on core files. This is useful in debugging or
120           diagnosing problems by allowing a stack trace to be obtained
121           from a failed server process.
122
123    -D datadir
124           --pgdata=datadir
125           Specifies the file system location of the database configuration
126           files. If this option is omitted, the environment variable
127           PGDATA is used.
128
129    -l filename
130           --log=filename
131           Append the server log output to filename. If the file does not
132           exist, it is created. The umask is set to 077, so access to the
133           log file is disallowed to other users by default.
134
135    -m mode
136           --mode=mode
137           Specifies the shutdown mode. mode can be smart, fast, or
138           immediate, or the first letter of one of these three. If this
139           option is omitted, fast is the default.
140
141    -o options
142           --options=options
143           Specifies options to be passed directly to the postgres command.
144           -o can be specified multiple times, with all the given options
145           being passed through.
146
147           The options should usually be surrounded by single or double
148           quotes to ensure that they are passed through as a group.
149
150    -o initdb-options
151           --options=initdb-options
152           Specifies options to be passed directly to the initdb command.
153           -o can be specified multiple times, with all the given options
154           being passed through.
155
156           The initdb-options should usually be surrounded by single or
157           double quotes to ensure that they are passed through as a group.
158
159    -p path
160           Specifies the location of the postgres executable. By default
161           the postgres executable is taken from the same directory as
162           pg_ctl, or failing that, the hard-wired installation directory.
163           It is not necessary to use this option unless you are doing
164           something unusual and get errors that the postgres executable
165           was not found.
166
167           In init mode, this option analogously specifies the location of
168           the initdb executable.
169
170    -s
171           --silent
172           Print only errors, no informational messages.
173
174    -t seconds
175           --timeout=seconds
176           Specifies the maximum number of seconds to wait when waiting for
177           an operation to complete (see option -w). Defaults to the value
178           of the PGCTLTIMEOUT environment variable or, if not set, to 60
179           seconds.
180
181    -V
182           --version
183           Print the pg_ctl version and exit.
184
185    -w
186           --wait
187           Wait for the operation to complete. This is supported for the
188           modes start, stop, restart, promote, and register, and is the
189           default for those modes.
190
191           When waiting, pg_ctl repeatedly checks the server's PID file,
192           sleeping for a short amount of time between checks. Startup is
193           considered complete when the PID file indicates that the server
194           is ready to accept connections. Shutdown is considered complete
195           when the server removes the PID file. pg_ctl returns an exit
196           code based on the success of the startup or shutdown.
197
198           If the operation does not complete within the timeout (see
199           option -t), then pg_ctl exits with a nonzero exit status. But
200           note that the operation might continue in the background and
201           eventually succeed.
202
203    -W
204           --no-wait
205           Do not wait for the operation to complete. This is the opposite
206           of the option -w.
207
208           If waiting is disabled, the requested action is triggered, but
209           there is no feedback about its success. In that case, the server
210           log file or an external monitoring system would have to be used
211           to check the progress and success of the operation.
212
213           In prior releases of PostgreSQL, this was the default except for
214           the stop mode.
215
216    -?
217           --help
218           Show help about pg_ctl command line arguments, and exit.
219
220    If an option is specified that is valid, but not relevant to the
221    selected operating mode, pg_ctl ignores it.
222
223 Options for Windows
224
225    -e source
226           Name of the event source for pg_ctl to use for logging to the
227           event log when running as a Windows service. The default is
228           PostgreSQL. Note that this only controls messages sent from
229           pg_ctl itself; once started, the server will use the event
230           source specified by its event_source parameter. Should the
231           server fail very early in startup, before that parameter has
232           been set, it might also log using the default event source name
233           PostgreSQL.
234
235    -N servicename
236           Name of the system service to register. This name will be used
237           as both the service name and the display name. The default is
238           PostgreSQL.
239
240    -P password
241           Password for the user to run the service as.
242
243    -S start-type
244           Start type of the system service. start-type can be auto, or
245           demand, or the first letter of one of these two. If this option
246           is omitted, auto is the default.
247
248    -U username
249           User name for the user to run the service as. For domain users,
250           use the format DOMAIN\username.
251
252 Environment
253
254    PGCTLTIMEOUT
255           Default limit on the number of seconds to wait when waiting for
256           startup or shutdown to complete. If not set, the default is 60
257           seconds.
258
259    PGDATA
260           Default data directory location.
261
262    Most pg_ctl modes require knowing the data directory location;
263    therefore, the -D option is required unless PGDATA is set.
264
265    For additional variables that affect the server, see postgres.
266
267 Files
268
269    postmaster.pid
270           pg_ctl examines this file in the data directory to determine
271           whether the server is currently running.
272
273    postmaster.opts
274           If this file exists in the data directory, pg_ctl (in restart
275           mode) will pass the contents of the file as options to postgres,
276           unless overridden by the -o option. The contents of this file
277           are also displayed in status mode.
278
279 Examples
280
281 Starting the Server
282
283    To start the server, waiting until the server is accepting connections:
284 $ pg_ctl start
285
286    To start the server using port 5433, and running without fsync, use:
287 $ pg_ctl -o "-F -p 5433" start
288
289 Stopping the Server
290
291    To stop the server, use:
292 $ pg_ctl stop
293
294    The -m option allows control over how the server shuts down:
295 $ pg_ctl stop -m smart
296
297 Restarting the Server
298
299    Restarting the server is almost equivalent to stopping the server and
300    starting it again, except that by default, pg_ctl saves and reuses the
301    command line options that were passed to the previously-running
302    instance. To restart the server using the same options as before, use:
303 $ pg_ctl restart
304
305    But if -o is specified, that replaces any previous options. To restart
306    using port 5433, disabling fsync upon restart:
307 $ pg_ctl -o "-F -p 5433" restart
308
309 Showing the Server Status
310
311    Here is sample status output from pg_ctl:
312 $ pg_ctl status
313
314 pg_ctl: server is running (PID: 13718)
315 /usr/local/pgsql/bin/postgres "-D" "/usr/local/pgsql/data" "-p" "5433" "-B" "128
316 "
317
318    The second line is the command that would be invoked in restart mode.
319
320 See Also
321
322    initdb, postgres