| PostgreSQL 7.4 文檔 | ||||
|---|---|---|---|---|
| Prev | Fast Backward | Fast Forward | Next | |
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 是一個用于啟動,停止, 或者重起 PostgreSQL 後端服務器(postmaster), 或者顯示一個運行著的服務器的狀態的工具, 盡管我們可以手動啟動服務器,但是 pg_ctl 封裝了重新定向日志輸出, 與終端和進程組合理分離,以及另外提供了一個選項用于有控制的關閉。
在 start 模式裡會啟動一個新的服務器。 服務器是在後台啟動的,標準輸入被附著到了 /dev/null 上。如果使用了 -l,那麼標準輸出和標準錯誤被定向到一個日志文件, 要麼就是重新定向到 pg_ctl 的標準輸出(而不是標準錯誤)。 如果沒有選定日志文件,pg_ctl 的標準輸出應該重新定向到一個文件或者用管道輸出到另外一個進程, 比如那些日志旋轉程序,否則,postmaster 將把它的輸出寫到控制終端(在後台)並且將不會脫離 shell 的進程組。
在 stop 模式下,那個正在特定數據目錄運行的服務器被關閉。 你可以用 -m 選項選擇三種不同的關閉模式:"Smart" 模式等待所有客戶端中斷聯接。 這個是缺省。"Fast" 模式並不等待客戶端中斷聯接。 所有活躍事務都被回卷並且客戶端都強制斷開。 "Immediate" 模式將在沒有幹淨關閉的情況下退出。這麼做將導致在重新啟動的時候的恢復。
restart 實際上是先執行一個停止,然後緊跟一個啟動。它允許變換postmaster命令行的選項。
reload 模式簡單地給postmaster發送一個 SIGHUP 信號,導致它重新讀取她的配置文件 (postgresql.conf,pg_hba.conf 等等) 這樣就允許修改配置文件選項而不用完全重啟系統來使之生效。
status 模式監查一個服務器是否在指定的數據目錄運行, 如果是,那麼顯示其 PID 和調用它的命令行選項。
聲明該數據庫文件的文件系統位置。 如果忽略這個選項,使用環境變量 PGDATA。
把服務器日志輸出附加在 filename 文件上。 如果該文件不存在,那麼創建它。umask設置為 077, 因此缺省時是不允許從其它用戶向日志文件訪問的。
聲明關閉模式。mode 可以是smart, fast, 或者 immediate,或者是這三個之一的第一個字母。
聲明要直接傳遞給postmaster 的選項。
參數通常都用單或者雙引號包圍以保證它們作為一個整體傳遞。
聲明 postmaster 可執行文件的位置。 缺省時 postmaster 是從和pg_ctl相同的目錄取出,如果不是, 那麼就是寫死的安裝目錄。除非你想幹點什麼特別的事情,並且得到類似沒有找到 postmaster這樣的錯誤, 否則沒有必要使用這個選項。
只打印錯誤,而不打印提示性信息。
等待啟動或者關閉的完成。在 60 秒後超時。 這個參數是關閉時的缺省值。 成功的關閉是以刪除 PID 文件為標志的。對于啟動而言, 一次成功的 psql -l 就標志著成功。 pg_ctl 將視圖使用對 psql 合適的端口,如果存在環境變量 PGPORT,那麼用它。 否則,它將查找看看在 postgresql.conf 文件裡面是否設置了一個端口。 如果都沒有,它將使用 PostgreSQL 編譯時的缺省端口(缺省是 5432)。
不等待啟動或者停止的完成。這是啟動和重起的缺省。
這個文件存在于數據目錄中是為了幫助 pg_ctl 判斷服務器當前是否在運行。
如果這個文件存在于數據目錄,pg_ctl(在 start 模式下)將把文件地內容當作傳遞給 postmaster 命令的選項傳遞過去,除非被 -o 選項覆蓋。
如果這個文件存在于數據目錄,pg_ctl(在start 模式下) 將把文件地內容當作傳遞給postmaster 命令的選項傳遞過去, 除非被 -o 選項覆蓋。這個文件的內容也會在 status 模式裡顯示出來。
這個文件在數據目錄中,會分析它以查找和 psql 一起用的合適的端口(在 start 模式裡給出 -w 的時候。)
如果在數據目錄裡存在 postmaster.opts.default 文件,那麼該文件將作為選項傳遞給 postmaster, 除非被 -o 選項覆蓋。
啟動服務器:
$ pg_ctl start
啟動服務器的一個例子, 等到服務器 啟動了才退出:
$ pg_ctl -w start
用于一個 postmaster 使用端口 5433,而且不帶 fsync 運行,使用:
$ pg_ctl -o "-F -p 5433" start