Provided by: manpages-zh_1.5.1-2_all bug

NAME

       pg_ctl - 啟動,停止和垮 PostgreSQL 伺服器

SYNOPSIS

       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 ]

DESCRIPTIONyz
       pg_ctl         是一茈峏饃珧吽A停止,         或者城_         PostgreSQL
       後端伺服器(postmaster),      或者顯示一蚢B行著的伺服器的狀態的工具,
       儘管我怚i以手動啟動伺服器,但是     pg_ctl      封裝了奐s定向日誌輸出,
       與終端和進程組合理分離,以及另外提供了一蚇龠等峏韟陰惆謇疑鶶活C

       在         start         模式裏會啟動一虓s的伺服器。        伺服器是在-
       I景啟動的,標準輸入被附著到了         /dev/null          上。如果使用了
       -l,那麼標準輸出和標準錯誤被定向到一茪暺x檔案, n麼就是奐s定向到 pg_ctl
       的標準輸出(而不是標準錯誤)。             如果沒有選定日誌檔案,pg_ctl
       的標準輸出應該奐s定向到一蚗仵蚸峈怚庥瑐D輸出到另外一荈i程,
       比如那些日誌旋轉程式,否則,postmaster    將把它的輸出寫到控制終端(在-
       I景)並且將不會脫離 shell 的進程組。

       在  stop  模式下,那茈縝b特定數據目錄運行的伺服器被關閉。  你可以用  -m
       選項選擇三種不同的關閉模式:"Smart"  模式等待所有客戶端中斷聯接。   這-
       茯O預設。"Fast"                            模式並不等待客戶端中斷聯接。
       所有活躍事務都被回卷並且客戶端都強制斷開。                  "Immediate"
       模式將在沒有幹凈關閉的情況下退出。這麼做將導P在奐s啟動的時啋澈黕_。

       restart   實際上是先執行一荌惜謘A然後緊跟一荓珧吽C它允傅傽  postmaster
       命令行的選項。

       reload   模式簡單地給   postmaster    發送一    SIGHUP    信號,導P它-
       奐s讀取她的配置檔案  (postgresql.conf,  pg_hba.conf  等等) 這樣就允-
       蚹黻t置檔案選項而不用完全垮狳t統來使之生效。

       status  模式監查一茼曭A器是否在指定的數據目錄運行,  如果是,那麼顯示其
       PID 和調用它的命令行選項。

OPTIONS項
       -D datadir
               聲明該數據庫檔案的檔案系統位置。  如果忽略這蚇龠窗A使用環境變量
              PGDATA。

       -l filename
               把伺服器日誌輸出附加在            filename             檔案上。
              如果該檔案不存在,那麼創建它。umask設置為                  077,
              因此預設時是不允陰q其它使用者向日誌檔案訪問的。

       -m mode
               聲明關閉模式。mode        可以是smart,        fast,        或者
              immediate,或者是這三茪坐@的第一茼r母。

       -o options
               聲明n直接傳遞給 postmaster  的選項。

               參數通常都用單或者雙引號包圍以保証它怬@為一蚞蒛曊慼C

       -p path
               聲明  postmaster  可執行檔案的位置。  預設時  postmaster 是從和
              pg_ctl                                相同的目錄取出,如果不是,
              那麼就是寫死的安裝目錄。除非你想幹點什麼特別的事情,並且得到類似沒有找到
              postmaster這樣的錯誤, 否則沒有必n使用這蚇龠窗C

       -s      只列印錯誤,而不列印提示性信息。

       -w      等待啟動或者關閉的完成。在 60 秒後超時。 這荌捊O關閉時的預設-
              C 成左疑鶶洵O以刪除 PID 檔案為標誌的。對於啟動而言, 一次成左
              psql    -l     就標誌著成央C    pg_ctl     將視圖使用對     psql
              合適的端口,如果存在環境變量                  PGPORT,那麼用它。
              否則,它將查找看看在 postgresql.conf  檔案裏惇O否設置了一蚨搕f。
              如果都沒有,它將使用     PostgreSQL     編譯時的預設端口(預設是
              5432)。

       -W      不等待啟動或者停止的完成。這是啟動和城_的預設。

ENVIRONMENT境
       PGDATA  預設數據目錄位置

       PGPORT psql(1) 的預設端口(由 -w 選項使用)。

        其它的環境變量,參 postmaster(1).

FILES案
       postmaster.pid
               這蚗仵蛈s在於數據目錄中是為了幫助                        pg_ctl
              判斷伺服器當前是否在運行。

       postmaster.opts.default
               如果這蚗仵蛈s在於數據目錄,pg_ctl(在                     start
              模式下)將把檔案地內容當作傳遞給                      postmaster
              命令的選項傳遞過去,除非被 -o 選項覆說C

       postmaster.opts
              如果這蚗仵蛈s在於數據目錄,pg_ctl(在                      start
              模式下)將把檔案地內容當作傳遞給                      postmaster
              命令的選項傳遞過去,除非被    -o    選項覆說C這蚗仵蛌漱漁e也會在
              status  模式裏顯示出來。

       postgresql.conf
               這蚗仵蛈b數據目錄中,會分析它以查找和                      psql
              一起用的合適的端口(在 start 模式裏給出 -w  的時唌C)

NOTES`N
        等待完全啟動還不是一茤w義得很完整的操作,
       如果訪問控制設置為本地客戶端在沒有手動交互的情況下不能訪問的話還可能會失效。(比如,口令認証)。

EXAMPLESl
   STARTING THE SERVERA器
        啟動伺服器:

       $ pg_ctl start

        啟動伺服器的一茖狺l, 等到伺服器 啟動了才退出:

       $ pg_ctl -w start

        用於一 postmaster 使用端口 5433,而且不帶 fsync 運行,使用:

       $ pg_ctl -o "-F -p 5433" start

   STOPPING THE SERVERA器
       $ pg_ctl stop

        停止伺服器,使用          -m          開關允釦确控制如何把後端停下來。
       -w等待伺服器停止。-m 聲明後端的停止模式。

   RESTARTING THE SERVERA器
        這茤R令幾乎等於先停止 postmaster  然後再啟動她,只不過 pg_ctl  保存並-
       奐s使用上一次運行 postmaster 的命令行參數。城_伺服器的最簡單的方法是:

       $ pg_ctl restart

        城_伺服器,等待其停止和城_:

       $ pg_ctl -w restart

        使用 5433 城_並且城_後關閉 fsync:

       $ pg_ctl -o "-F -p 5433" restart

   SHOWING THE SERVER STATUSAA
        下惇O來自 pg_ctl 的狀態輸出的例子:

       $ pg_ctl status
       pg_ctl: postmaster is running (pid: 13718)
       Command line was:
       /usr/local/pgsql/bin/postmaster '-D' '/usr/local/pgsql/data' '-p' '5433' '-B' '128'

        這是在城_模式裏使用的命令行。

SEE ALSO見
       postmaster(1)

者
       Postgresql  <laser@pgsqldb.org>