Linux
PostgreSQL 程序及其響應的信號
對於 PostgreSQL 8.3 及更高版本,構成伺服器並響應查詢的程序是什麼?
各種過程對什麼信號作出反應,這些信號有什麼作用?
應該或不應該發送哪些信號以及何時應該或不應該使用它們的指導方針是什麼?
舊版本的 Postgres 使用信號來處理更多事情。我在這裡寫的是新發布的 8.4,它也適用於 8.3。如果您正在尋找有關舊版本的資訊,請相應地更新您的問題。
Postgres 8.3 的“postmaster”將在收到信號 SIGTERM、SIGINT 和 SIGQUIT 時終止。像任何程序一樣,您可以使用 SIGKILL 殺死它,但這會導致不干淨的關閉並可能損壞數據庫,因此應避免使用它。您也不應該在 postmaster 程序中拍攝 SIGQUIT,因為這可能會被子 postmaster 程序解釋為崩潰。不過,您確實應該使用 pg_ctl 來啟動/停止 postmaster。
SIGHUP 導致 postmaster 重新讀取其配置文件(這在許多 Unix 風格的應用程序中很常見)。如果您希望它們全部重新讀取其配置文件,則必須對每個正在執行的 postmaster 程序進行 SIGHUP。
有關更多詳細資訊,請參閱http://www.postgresql.org/docs/8.4/static/app-postgres.html。