pg_ctl

pg_ctl

pg_ctl -- 启动、停止、重启 PostgreSQL
2010-01-11 19:08

pg_ctl

名称

pg_ctl -- 启动、停止、重启 PostgreSQL

语法

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 命令注册的系统服务。

选项

-D datadir

声明该数据库的文件系统位置。如果忽略则使用 PGDATA 环境变量。

-l filename

把服务器日志输出附加在 filename 文件上。如果该文件不存在则创建它。umask 设置为 077 ,因此缺省时是不允许从其它用户向日志文件访问的。

-m mode

声明关闭模式。mode 可以是 smart, fast, immediate 之一,或者是这三个的首字母之一。

-o options

声明要直接传递给 postgres 的选项。

参数通常都用单或者双引号包围以保证它们作为一个整体传递。

-p path

声明 postgres 可执行文件的位置。缺省位于 pg_ctl 自身所在目录,如果没找到则使用硬编码的安装目录。除非你想干点什么特别的事情,并且想得到类似没有找到 postgres 这样的错误,否则必须使用这个选项。

-s

只打印错误,而不打印提示性信息。

-w

等待启动或者关闭的完成(60 秒超时),这个参数是关闭时的缺省值。成功的关闭是以删除 PID 文件为标志的。对于启动而言,一次成功的 psql -l 就标志着成功。pg_ctl 将企图使用对 psql 合适的端口,如果存在 PGPORT 环境变量,那么将用它。否则,它将查找在 postgresql.conf 文件里是否设置了一个端口。如果都没有,它将使用 PostgreSQL 编译时的缺省端口(缺省 5432)。在等待的时候,pg_ctl 将根据启动或者关闭的成功状况返回一个准确的退出代码。

-W

不等待启动或者停止的完成。这是启动和重启的缺省。

你可能感兴趣的:(pg_ctl)