Сценарий 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, описанного в предыдущем подразделе.