Provided by: manpages-zh_1.6.3.3-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 ]

DESCRIPTION 描述

       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
       和調用它的命令行選項。

OPTIONS 選項

       -D datadir
               聲明該數據庫文件的文件系統位置。 如果忽略這個選項,使用環境變量 PGDATA。

       -l filename
               把服務器日誌輸出附加在 filename 文件上。 如果該文件不存在,那麼創建它。umask設置爲
              077, 因此缺省時是不允許從其它用戶向日志文件訪問的。

       -m mode
               聲明關閉模式。mode               可以是smart,              fast,              或者
              immediate,或者是這三個之一的第一個字母。

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

               參數通常都用單或者雙引號包圍以保證它們作爲一個整體傳遞。

       -p path
               聲明    postmaster    可執行文件的位置。    缺省時    postmaster   是從和   pg_ctl
              相同的目錄取出,如果不是,
              那麼就是寫死的安裝目錄。除非你想幹點什麼特別的事情,並且得到類似沒有找到
              postmaster這樣的錯誤, 否則沒有必要使用這個選項。

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

       -w
               等待啓動或者關閉的完成。在      60      秒後超時。      這個參數是關閉時的缺省值。
              成功的關閉是以刪除    PID    文件爲標誌的。對於啓動而言,    一次成功的   psql   -l
              就標誌着成功。    pg_ctl     將視圖使用對     psql     合適的端口,如果存在環境變量
              PGPORT,那麼用它。               否則,它將查找看看在               postgresql.conf
              文件裏面是否設置了一個端口。            如果都沒有,它將使用             PostgreSQL
              編譯時的缺省端口(缺省是 5432)。

       -W
               不等待啓動或者停止的完成。這是啓動和重起的缺省。

ENVIRONMENT 環境

       PGDATA
               缺省數據目錄位置

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

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

FILES 文件

       postmaster.pid
               這個文件存在於數據目錄中是爲了幫助 pg_ctl  判斷服務器當前是否在運行。

       postmaster.opts.default
               如果這個文件存在於數據目錄,pg_ctl(在    start   模式下)將把文件地內容當作傳遞給
              postmaster 命令的選項傳遞過去,除非被 -o 選項覆蓋。

       postmaster.opts
              如果這個文件存在於數據目錄,pg_ctl(在    start    模式下)將把文件地內容當作傳遞給
              postmaster   命令的選項傳遞過去,除非被  -o  選項覆蓋。這個文件的內容也會在  status
              模式裏顯示出來。

       postgresql.conf
               這個文件在數據目錄中,會分析它以查找和    psql    一起用的合適的端口(在     start
              模式裏給出 -w  的時候。)

NOTES 注意

        等待完全啓動還不是一個定義得很完整的操作,
       如果訪問控制設置爲本地客戶端在沒有手工交互的情況下不能訪問的話還可能會失效。(比如,口令認證)。

EXAMPLES 例子

   STARTING THE SERVER 啓動服務器
        啓動服務器:

       $ pg_ctl start

        啓動服務器的一個例子, 等到服務器 啓動了才退出:

       $ pg_ctl -w start

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

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

   STOPPING THE SERVER 停止服務器
       $ pg_ctl stop

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

   RESTARTING THE SERVER 重起服務器
        這個命令幾乎等於先停止 postmaster  然後再啓動她,只不過  pg_ctl  保存並重新使用上一次運行
       postmaster 的命令行參數。重起服務器的最簡單的方法是:

       $ pg_ctl restart

        重起服務器,等待其停止和重起:

       $ pg_ctl -w restart

        使用 5433 重起並且重起後關閉 fsync:

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

   SHOWING THE SERVER STATUS 顯示服務器狀態
        下面是來自 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>

       本頁面中文版由中文 man 手冊頁計劃提供。
       中文 man 手冊頁計劃:https://github.com/man-pages-zh/manpages-zh