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