語法
pg_ctl start [-w] [-s] [-D datadir] [-l filename] [-o options] [-p path]
pg_ctl stop [-W] [-s] [-D datadir] [-m s[mart] | f[ast] | i[mmediate] ]
pg_ctl restart [-w] [-s] [-D datadir] [-m s[mart] | f[ast] | i[mmediate] ] [-o options]
pg_ctl reload [-s] [-D datadir]
pg_ctl status [-D datadir]
pg_ctl kill [signal_name] [process_id]
pg_ctl register [-N servicename] [-U username] [-P password] [-D datadir] [-w] [-o options]
pg_ctl unregister [-N servicename]
描述
pg_ctl 用于啟動、停止、重啟 PostgreSQL 后端服務器(postgres),或者顯示一個運行著的服務器的狀態。盡管可以手動啟動服務器,但是 pg_ctl 封裝了重新定向日志輸出,與終端和進程組合理分離,以及另外提供了一個選項用于有控制的關閉。
在 start 模式里會啟動一個新的服務器。服務器是在后臺啟動的,標準輸入被附著到了 /dev/null 上。如果使用了 -l ,那么標準輸出和標準錯誤將被定向到一個日志文件,要么就是重定向到 pg_ctl 的標準輸出(而不是標準錯誤)。如果沒有選定日志文件,pg_ctl 的標準輸出應該重定向到一個文件或者用管道輸出到類似 rotatelogs 這樣的日志滾動程序,否則,postgres 將把它的輸出寫到控制終端(在后臺)并且將不會脫離 shell 的進程組。
在 stop 模式下,那個正在特定數據目錄運行的服務器將被關閉。你可以用 -m 選項選擇三種不同的關閉模式:"Smart"模式等待所有客戶端中斷連接,這是缺省。"Fast"模式并不等待客戶端中斷連接,所有活躍事務都被回滾并且 客戶端都被強制斷開。"Immediate"模式將在沒有干凈關閉的情況下強行退出。這么做將導致在重新啟動的時候的恢復。
restart 實際上是先執行一個停止,然后緊跟一個啟動。它允許變換 postgres 的命令行選項。
reload 模式簡單地給 postgres 發送一個 SIGHUP 信號,導致它重新讀取配置文件(postgresql.conf, pg_hba.conf 等),這樣就允許修改配置文件選項而不用重啟系統即可生效。
status 模式監查一個服務器是否在指定的數據目錄運行,如果是,那么顯示其 PID 和調用它的命令行選項。
kill 模式允許你給一個指定的進程發送信號。這個功能對 Microsoft Windows 特別有用,因為它沒有 kill 命令。使用 --help 查看支持的信號名字列表。
register 模式允許你在 Microsoft Windows 上注冊一個系統服務。
unregister 模式允許你在 Microsoft Windows 上刪除先前用 register 命令注冊的系統服務。