する、あるいは稼働中のサーバの状態を表示するためのユーティリティです。サーバは手動で起動することも可能ですが、pg_ctlは、ログ出力のリダイレクトや、ターミナルとプロセスグループの適切な分離などの作業をカプセル化してくれます。シャットダウン制御のための便利なオプションも提供します。initまたはinitdbモードは新しいPostgreSQLデータベースクラスタを作成します。データベースクラスタとは、単一のサーバインスタンスで管理されるデータベースの集合です。このモードはinitdbコマンドを呼び出します。initdbを参照して下さい。startモードでは、新しいサーバが立ち上がります。サーバはバックグラウンドで起動され、その標準入力は/dev/null(Windowsの場合はnul)に接続されます。Unix互換のシステムではデフォルトで、サーバの標準出力と標準エラーはpg_ctlの標準出力に転送されます。pg_ctlの標準出力はファイルにリダイレクトするか、例えばrotatelogsなどのログ回転プログラムのような別プロセスにパイプで渡すべきです。しないと、postgresはその出力を(バックグランドから)制御端末に書き出しますので、シェルのプロセスグループから切り離すことができません。Windowsではデフォルトで、サーバの標準出力と標準エラーは端末に送信されます。したデフォルトの動作は-lを用いてサーバの出力をログファイルに追加するように変更することができます。-lまたは出力のリダイレクトのどちらかを使用することを勧めます。stopモードは、指定されたデータディレクトリで稼働しているサーバを停止(シャットダウン)します。-mオプションでは、3つの異なる停止方式を選択できます。"Smart"モード(デフォルト)は、全てのクライアントが切断し、オンラインバックアップがあればそれが終了するまで待ちます。サーバがホットスタンバイ状態の場合、すべてのクライアント接続が切断された後にリカバリとストリーミングレプリケーションは終了します。"Fast"モードはクライアントが切断するまで待たず、かつ、実行中のオンラインバックアップを終了させます。全ての実行中のトランザクションをロールバックし、クライアントとの接続を強制的に切断した後、サーバを停止します。"Immediate"モードは、クリーンアップ処理なしで、全てのサーバプロセスを即座に中断します。これを指定すると、再起動時にクラッシュリカバリ処理が実行されます。restartモードは、効果的にサーバを停止して、その後、再起動します。この時、postgresコマンドラインオプションを変更することができます。reloadモードは、単にpostmasterにSIGHUPシグナルを送り、(postgresql.conf、pg_hba.confなどの)設定ファイルを再読み込みを実行させます。これにより、完全な再起動をすることなく、設定ファイルのオプションの変更を反映させることができます。statusモードは指定したデータディレクトリでサーバが起動しているかどうかを確認します。起動している場合はPIDと、サーバを起動する時に使われたコマンドラインオプションを表示します。サーバが稼働していない場合、このプロセスは終了ステータス3を返します。promoteモードでは、指定したデータディレクトリで稼動中のスタンバイサーバにリカバリを終了し読み書き操作を始めるようコマンドを送ります。killモードでは指定したプロセスにシグナルを送信することができます。Windowsで有用です。サポートするシグナル名の一覧は--helpを使用して確認してください。Windows上でシステムサービスを登録することができます。-Sオプションによりサービスの起動種類を"auto"(システム起動時に自動的にサービスを起動)か"demand"(要望が合った時にサービスを起動)から選択することができます。Windows上のシステムサービスを登録解除することができます。これは過去にregisterコマンドによりなされた変更を元に戻します。オプション-c--core-file実現可能なプラットフォームにおいて、サーバクラッシュ時にcoreファイルを生成できるように関連するソフトリソース制限を上げます。障害が起きたサーバプロセスから得られたスタックトレースを行うことができますので、問題のデバッグや診断の際に有用です。datadirデータベースファイルのファイルシステム上の場所を指定します。これが省略された場合、PGDATA環境変数が使われます。filenameサーバログ出力をfilenameに追加します。そのファイルが存在しない場合は作成されます。umaskは077に設定されますので、他のユーザからのログファイルへのアクセスはデフォルトでは許可されません。mode停止(シャットダウン)モードを指定します。modeはsmart、fast、immediate、もしくはこの3つのモード名の最初の1文字をとることができます。省略時はsmartが使用されます。options直接postgresに渡されるオプションを指定します。このオプションは、通常、1グループとして渡されることを保証するために、単一引用符または二重引用符で囲まなければなりません。initdb-optionsinitdbコマンドに直接渡すオプションを指定します。このオプションは通常、ひとまとめとして渡すために確実に、単一引用符または二重引用符で囲まなければなりません。pathpostgresの実行プログラムの位置を指定します。デフォルトではpostgresの実行プログラムはpg_ctlと同じディレクトリにあるものと仮定されます。このディレクトリに存在しなければ、構築時に指定したインストールディレクトリが使われます。このオプションは、何か異例なことをしていてpostgresが見つからないというようなエラーが出ない限り、使う必要はありません。initモードでは、このオプションは同様にinitdb実行プログラムの場所を指定します。-s--silentエラーメッセージのみを表示し、その他の情報を表示しません。-t--timeout起動または停止の待機が完了するまでの最大の秒数。デフォルトは60秒です。-V--versionpg_ctlのバージョンを表示し、終了します。-w起動もしくは停止処理が完了するのを待ちます。待機は停止処理ではデフォルトのオプションですが、起動処理ではデフォルトではありません。起動処理を待機している場合、pg_ctlは繰り返しサーバへの接続を試行します。停止処理を待機している場合、pg_ctlはサーバがPIDファイルを削除するまで待機します。pg_ctlは、起動もしくは停止が成功したかどうかに基づいて正しい終了コードを返します。-W起動処理もしくは停止処理が完了するのを待ちません。起動と再起動モードのデフォルトです。-?--helppg_ctlコマンドライン引数の説明を表示し、終了します。servicename登録するシステムサービスの名前です。この名前は、システム名としても表示名としても使用されます。passwordサービスを開始するユーザ用のパスワードです。start-type登録するシステムサービスの起動種類です。気同種類はauto、demand、またはこれら2単語の先頭の文字のいずれかです。省略時はautoが使用されます。usernameサービスを起動するユーザのユーザ名です。ドメインユーザの場合はDOMAIN\username書式を使用してください。環境PGDATAデフォルトのデータ保存場所です。pg_ctlは、他のほとんどのPostgreSQLユーティリティと同様、libpqでサポートされる環境変数を使用します(項31.14を参照してください)。この他のサーバ変数についてはpostgresを参照してください。ファイルpostmaster.pidデータディレクトリにこのファイルがあるかどうかによって、pg_ctlはサーバが現在稼働中かどうかを決定します。postmaster.optsこのファイルがデータディレクトリにあれば、pg_ctl(のrestartモード)は、-oで上書きされるものを除き、このファイルの内容をオプションとしてpostgresに渡します。このファイルの内容がstatusモードで表示されます。例サーバの起動サーバを起動します。start以下はサーバが接続を植え付けられるようになるまで待機する起動例です。startポート5433を使いfsyncなしでサーバを起動します。startサーバの停止サーバを停止するためには以下を使用します。stop-mオプションによりどのようにバックエンドを停止させるかを制御できます。fastサーバの再起動サーバの再起動は、サーバを停止してもう一度起動するのとほぼ同じですが、違うのは、pg_ctlが以前起動していたインスタンスに渡されていたコマンドラインオプションを保存し再利用することです。下記はサーバを再起動する最も簡単な方法です。restart再起動の際にサーバのシャットダウンを待ってから起動を行う方法です。restart以下はポート5433を使って再起動し、再起動後にfsyncを無効にする方法です。下記はpg_ctlからの状態の出力の例です。"128"これは再起動(restart)モードで呼び出されるコマンドラインです。pg_resetxlog。