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 status [-D datadir]
pg_ctlはPostgreSQL バックエンドサーバである postmaster を起動、 停止、再起動、あるいは起動中の postmaster の 状態を表示するためのユーティリティです。postmasterは手動で起動することも可能 ですが、pg_ctl はログ出力のリダイレクト などの作業を、的確にターミナルとプロセスグループから分離しながら カプセル化し、更にどのように停止するかを管理するオプションも提供します。
startモードで、新しいpostmasterが立ち上がります。 サーバはバックグラウンドで起動され、標準入力は/dev/null に付随されます。標準出力と標準エラーは、-l オプションが 使われた場合ログファイルに、そうでない場合はpg_ctl の標準出力(標準エラー出力ではありません)にリダイレクトされます。 もしログファイルを指定しない場合、pg_ctlの標準出力は、 ファイルにリダイレクトするか、例えばログ回転プログラムのような別プロセスにパイプで渡すべきです。 そうしないと、postmasterは出力を(バックグラウンドから)制御ターミナルに書き出すので、 シェルのプロセスグループから切り離せません。
stopモードは、指定されたデータディレクトリ上で管理している postmasterを停止します。-m オプションで3つの異なる停止メソッドを選択することができます。 "Smart"モードは全てのクライアントが切断するまで待ちます。 これはデフォルトです。"Fast"モードはクライアントが切断するまで待ちません。 すべての実行中のトランザクションはロールバックされます。 "Immediate"モードは完全に停止することなく中断します。 この指定により、再起動時に回復処理が実行されることになります。 デフォルトでは、stopモードは停止が完了するまで待ちます。
restart モードは停止の直後に効果的に起動を実行 します。これは postmaster コマンドラインの変更を可能にします。
status モードは postmaster が起動しているかを 確認し、起動していた場合は PID と、postmaster を起動する時に使われたコマンドラインオプションを表示します。
データベースファイルのファイルシステムでの場所を指定します。もし これが省略されると、環境変数 PGDATA が使われます。
サーバログ出力をfilenameに追加します。 そのファイルが存在しない場合は作成されます。umaskは077に設定されるため、 他のユーザからのログファイルへのアクセスはデフォルトでは許可されません。
停止モードを指定します。モード はsmart、 fast、もしくは immediate、もしくはこれらの3つのうちのどれかの最初の文字になります。
オプションが直接 postmaster に 渡されるように指定します。
パラメータは通常、1つのグループとして渡ることを保障するために、 単一もしくは二重引用符で囲まれています。
postmaster の実行プログラムの位置を 指定します。デフォルトでは postmaster は pg_ctl と同じ ディレクトリ、そうでない場合は構築時に指定したインストールディレクトリとなります。 このオプションは何か異例なことをしていてpostmasterが見つからないというような エラーが出ない限り、使う必要はありません。
起動もしくは停止処理が終了するのを待ちます。60秒でタイムアウトします。 停止処理のデフォルトです。
起動もしくは停止が完了するのを待ちません。 起動と再起動のデフォルトです。
エラーメッセージのみ表示します。
postmaster を起動するためには 下記のようにします。
$ pg_ctl start
下記は postmaster が立ち上がるまでブロックをする postmaster の起動方法の例です。
$ pg_ctl -w start
ポート 5433 を使い fsync なしで起動する postmaster は下記を使います。
$ pg_ctl -o "-F -p 5433" start