对于PostgreSQL 8.3和更高版本,组成服务器的过程是什么,并对查询做出响应?
各种程序响应什么信号,信号有什么影响?
哪些信号应该或不应该被发送,什么时候应该使用或不应该使用什么准则?
老版本的Postgres使用信号来做更多的事情。 我在这里写了新发布的8.4,它也适用于8.3。 如果您正在查找旧版本的信息,请相应地更新您的问题。
当接收到SIGTERM,SIGINT和SIGQUIT信号时,Postgres 8.3的“postmaster”将终止。 像任何进程一样,你可以用SIGKILL杀死它,但是这会导致不正常的closures,并可能会损坏数据库,所以应该避免。 你不应该在postmaster进程中去开发SIGQUITs,因为这可能会被postmastersubprocess解释为崩溃。 不过,你真的应该使用pg_ctl来启动/停止postmaster。
SIGHUP使得postmaster重新读取它的configuration文件(就像很多Unix风格的应用程序一样)。 如果你想让他们重新读取他们的configuration文件,你将不得不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