The SysV-style script, if installed, operates similarly to the
pg_ctl
script. In fact, the SysV-style
script operates as a management program that wraps around the
pg_ctl
command. The primary difference is
that the SysV script is intended to be invoked by the
root
user, rather than the user who owns
and runs PostgreSQL (e.g.,
postgres
). The script itself handles the switching of the userids at the
appropriate times.
Using the SysV script instead of manually invoking
pg_ctl
is advantageous in that it simplifies
system startup and shutdown procedures. The
postgresql
script file
in
/etc/rc.d/init.d/
is a plain text file, and can be modified in any standard text editor. Within
this file you may easily locate the startup and shutdown routines, and add or remove options to
pg_ctl
as you most commonly use them. The
pg_ctl
commands are simplified by using either the single
administrative
start
or
stop
parameter with the
postgresql
script.
The instructions for installation of the
postgresql
script are covered in Chapter 2. Depending on your machine's configuration, there may be more than one method of invoking
the script once it has been properly installed. Remember that the actual name of the SysV script file in the
/etc/rc.d/init.d/
directory may be an arbitrary name, depending on how it was copied. The most common
names given to this script are
postgresql
and
postgres
.
If your system supports the
service
command, you should be able to use it as a wrapper to the
installed PostgreSQL script with the following syntax:
service postgresql { start | stop | restart | status }
The
service
command accepts only the parameters described in the preceding syntax. No
other options are accepted. You can modify the way any of these general modes runs by editing the script (e.g.,
/etc/rc.d/init.d/postgresql
) manually. Example 9-5 uses
the
service
command to start PostgreSQL.
Example 9-5. Starting PostgreSQL with service command
[root@booktown ~]#
service postgresql start
Starting PostgreSQL: ok
[root@booktown ~]#
Alternatively, if the
service
command does not exist on your system, the
postgresql
script can be manually invoked with its complete system path:
/etc/rc.d/init.d/postgresql { start | stop | restart | status }
Example 9-6 checks the status of PostgreSQL's backend process by directly
calling the
postgresql
script in the complete path. This assumes that your system has its SysV
start-up scripts installed in the
/etc/rc.d/init.d/
directory.
Example 9-6. Checking status with postgresql script
[root@booktown ~]#
/etc/rc.d/init.d/postgresql status
pg_ctl: postmaster is running (pid: 13238)
Command line was:
/usr/local/pgsql/bin/postmaster '-D' '/usr/local/pgsql/data'
[root@booktown ~]#
As you can see from the output of Example 9-6, the SysV script is just a
convenient wrapper to the
pg_ctl
command discussed in the previous section.