Иллюстрированный самоучитель по PostgreSQL

Сценарий SysV

Сценарий SysV работает аналогично pg_ctl. В сущности, он играет роль управляющей программы для выполнения команд pg_ctl. Главное отличие заключается в том, что сценарий SysV запускается пользователем root, а не пользователем, запускающим PostgreSQL (например, postgres). Сценарий самостоятельно переключает идентификаторы пользователей в нужный момент.

По сравнению с ручным вызовом команд pg_ctl сценарии SysV упрощает процедуры запуска и завершения PostgreSQL. Файл сценария postgresql в каталоге /etc/re.d/init.d хранится в вид обычного текста и может редактироваться в любом стандартном текстовом редакторе. В нем можно легко найти процедуры запуска и завершения, а также добавить или убрать часто используемые аргументы вызова pg_ctl. Вызов postgresql с общим параметром start или stop значительно проще вызова команд pg_ctl с несколькими аргументами.

Инструкции по установке сценария postgresql приведены в главе 2. В зависимости от конфигурации компьютера может существовать несколько способов выполнения установленного сценария. Помните, что настоящее имя файла сценария SysV в каталоге /etc/rc.d/init.d/ выбирается произвольно. Обычно сценарию присваиваются имена postgresql и postgres.

Запуск сценария может осуществляться командой service, если она поддерживается в вашей системе. Команда имеет следующий синтаксис:

service postgresql { start | stop | restart status }

Команда servi се принимает только аргументы, перечисленные в фигурных скобках. Любые другие значения отвергаются. Конфигурацию всех перечисленных режимов можно изменить, отредактировав сценарий (например, /etc/rc.d/init.d/ postgresql). В листинге 9.5 приведен пример запуска PostgreSQL командой service.

Листинг 9.5. Запуск PostgreSQL командой service.

[root@booktown – ]# service postgresql start
Starting PostgreSQL: ok [root@booktown – ]#

Если команда service не поддерживается в вашей системе, сценарий postgresql можно вызвать вручную с указанием полного пути:

/etc/re.d/init.d/postgresql { start | stop | restart | status }

В листинге 9.6 состояние серверного процесса PostgreSQL проверяется прямым вызовом сценария postgresql с указанием полного пути. Предполагается, что в вашей системе стартовые сценарии SysV хранятся в каталоге /etc/rc.d/init.d/.

Листинг 9.6. Проверка состояния PostgreSQL с использованием сценария postgresql.

[root@booktown – ]# /etc/re.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 – ]#

Как видно из результатов, сценарий SysV всего лишь является удобной "оболочкой" для вызова команд приложения pg_ctl, описанного в предыдущем подразделе.

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.