Назад | Перейти на главную страницу

Процессы PostgreSQL и сигналы, на которые они реагируют

В PostgreSQL 8.3 и новее, какие процессы составляют сервер и отвечают на запрос?

На какие сигналы реагируют различные процессы и какой эффект они оказывают?

Каковы правила, какие сигналы следует или не следует отправлять и когда их следует или не следует использовать?

Старые версии Postgres использовали сигналы для большего количества вещей. Я пишу здесь о недавно выпущенной версии 8.4, и это также относится к версии 8.3. Если вы ищете информацию о более старой версии, обновите свой вопрос соответствующим образом.

"Postmaster" Postgres 8.3 завершает работу при получении сигналов SIGTERM, SIGINT и SIGQUIT. Как и любой процесс, вы можете убить его с помощью SIGKILL, но это приведет к нечистому завершению работы и может повредить базу данных, поэтому этого следует избегать. Вы также не должны использовать SIGQUIT для процессов postmaster, потому что дочерние процессы postmaster могут интерпретировать это как сбой. Однако вам действительно следует использовать pg_ctl для запуска / остановки postmaster.

SIGHUP заставляет postmaster перечитывать свои файлы конфигурации (что типично для многих приложений в стиле Unix). Вам придется SIGHUP каждый запущенный процесс postmaster, если вы хотите, чтобы все они перечитали свои файлы конфигурации.

Видеть http://www.postgresql.org/docs/8.4/static/app-postgres.html Больше подробностей.

Проверьте раздел «Примечания» в любой версии руководства в главе для приложения сервера postgres. Вот ссылка для 8.3.x: http://www.postgresql.org/docs/8.3/interactive/app-postgres.html