<!--
$Header: /usr/prj/pg/cvsroot/doc/doc/src/sgml/ref/pg_ctl-ref.sgml,v 1.10 2001/09/14 09:59:11 t-ishii Exp $
Postgres documentation
-->

<refentry id="app-pg-ctl">
 <docinfo>
  <date>2001-02-08</date>
 </docinfo>

 <refmeta>
  <refentrytitle id="app-pg-ctl-title"><application>pg_ctl</application></refentrytitle>
  <manvolnum>1</manvolnum>
  <refmiscinfo><!-- Application -->アプリケーション</refmiscinfo>
 </refmeta>

 <refnamediv>
  <refname>pg_ctl</refname>
  <refpurpose><!-- Starts, stops, or restarts postmaster -->
  postmasterを起動、停止、再起動します。<indexterm><primary>pg_ctl</primary></indexterm><indexterm><primary>PostgreSQL</primary><secondary>pg_ctl</secondary></indexterm><indexterm><primary>PostgreSQL</primary><secondary sortas="きどう">起動</secondary></indexterm><indexterm><primary>PostgreSQL</primary><secondary sortas="ていし">停止</secondary></indexterm><indexterm><primary>PostgreSQL</primary><secondary sortas="さいきどう">再起動</secondary></indexterm>
</refpurpose>
 </refnamediv>

 <refsynopsisdiv>
  <cmdsynopsis>
   <command>pg_ctl</command>
   <arg choice="plain">start</arg>
   <arg>-w</arg>
   <arg>-s</arg>
   <arg>-D <replaceable>datadir</replaceable></arg>
   <arg>-l <replaceable>filename</replaceable></arg>
   <arg>-o <replaceable>options</replaceable></arg>
   <arg>-p <replaceable>path</replaceable></arg>
   <sbr>
   <command>pg_ctl</command>
   <arg choice="plain">stop</arg>
   <arg>-W</arg>
   <arg>-s</arg>
   <arg>-D <replaceable>datadir</replaceable></arg>
   <arg>-m
     <group choice="plain">
       <arg>s[mart]</arg>
       <arg>f[ast]</arg>
       <arg>i[mmediate]</arg>
     </group>
   </arg>
   <sbr>
   <command>pg_ctl</command>
   <arg choice="plain">restart</arg>
   <arg>-w</arg>
   <arg>-s</arg>
   <arg>-D <replaceable>datadir</replaceable></arg>
   <arg>-m
     <group choice="plain">
       <arg>s[mart]</arg>
       <arg>f[ast]</arg>
       <arg>i[mmediate]</arg>
     </group>
   </arg>
   <arg>-o <replaceable>options</replaceable></arg>
   <sbr>
   <command>pg_ctl</command>
   <arg choice="plain">status</arg>
   <arg>-D <replaceable>datadir</replaceable></arg>
  </cmdsynopsis>
 </refsynopsisdiv>


 <refsect1 id="app-pg-ctl-description">
  <title><!-- Description -->説明</title>
  <para>
   <!-- <application>pg_ctl</application> is a utility for starting,
   stopping, or restarting <xref linkend="app-postmaster">, the
   <productname>PostgreSQL</productname> backend server, or displaying
   the status of a running postmaster.  Although the postmaster can be
   started manually, <application>pg_ctl</application> encapulates
   tasks such as redirecting log output, properly detaching from the
   terminal and process group, and additionally provides an option for
   controlled shut down. -->

   <application>pg_ctl</application>は、<productname>PostgreSQL</productname>バックエンドサーバーである<xref linkend="app-postmaster">を起動、停止、再起動したり、起動中のpostmasterの状態を表示するためのユーティリティです。postmasterは手動で起動することも可能ですが、<application>pg_ctl</application>はログ出力のリダイレクトなどの作業を、的確にターミナルとプロセスグループから分離しながらカプセル化し、さらにどのように停止するかを管理するオプションも提供します。

  </para>

  <para>
   <!-- 
   In <option>start</option> mode, a new postmaster is launched.  The
   server is started in the background, the standard input attached to
   <filename>/dev/null</filename>.  The standard output and standard
   error are either appended to a log file, if the <option>-l</option>
   option is used, or are redirected to
   <application>pg_ctl</application>'s standard output (not standard
   error).  If no log file is chosen, the standard output of
   <application>pg_ctl</application> should be redirected to a file or
   piped to another process, for example a log rotating program,
   otherwise the postmaster will write its output the the controlling
   terminal (from the background) and will not leave the shell's
   process group. -->

   <option>start</option>モードで、新しいpostmasterが起動します。サーバーはバックグラウンドで起動され、標準入力は<filename>/dev/null</filename>に接続されます。標準出力と標準エラーは、<option>-l</option>オプションが使われた場合ログファイルに、そうでない場合は<application>pg_ctl</application>の標準出力（標準エラー出力ではありません）にリダイレクトされます。もしログファイルを指定しない場合、<application>pg_ctl</application>の標準出力は、ファイルにリダイレクトするか、たとえばログ回転プログラムのような別プロセスにパイプで渡すべきです。そうしないと、postmasterは出力を（バックグラウンドから）制御ターミナルに書き出すので、シェルのプロセスグループから切り離せません。

  </para>

  <para>
   <!-- 
   In <option>stop</option> mode, the postmaster that is running on
   the specified data directory is shut down.  Three different
   shutdown methods can be selected with the <option>-m</option>
   option: <quote>Smart</quote> mode waits for all the clients to
   disconnect.  This is the default.  <quote>Fast</quote> mode does
   not wait for clients to disconnect.  All active transactions will
   be rolled back.  <quote>Immediate</quote> mode will abort without
   complete shutdown.  This will lead to a recovery run on restart.
   By the default, stop mode waits for the shutdown to complete. -->

   <option>stop</option>モードは、指定されたデータディレクトリ上で管理しているpostmasterを停止します。<option>-m</option>オプションで3つの異なる停止メソッドを選択することができます。<quote>Smart</quote>モードはすべてのクライアントが切断するまで待ちます。これはデフォルトです。<quote>Fast</quote>モードはクライアントが切断するまで待ちません。すべての実行中のトランザクションはロールバックされます。<quote>Immediate</quote>モードは完全に停止することなく中断します。この指定により、再起動時に回復処理が実行されることになります。デフォルトでは、stopモードは停止が完了するまで待ちます。

  </para>

  <para>
   <!-- 
   <option>restart</option> mode effectively executes a stop followed
   by a start.  This allows the changing of postmaster command line
   options. -->

   <option>restart</option>モードは、停止の直後に効果的に起動を実行します。これはpostmasterコマンドラインの変更を可能にします。

  </para>

  <para>
   <!-- 
   <option>status</option> mode checks whether a postmaster is running
   and if so displays the <acronym>PID</acronym> and the command line
   options that were used to invoke it. -->

   <option>status</option>モードは、postmasterが起動しているかを確認し、起動していた場合は<acronym>PID</acronym>と、postmasterの起動に使われたコマンドラインオプションを表示します。

  </para>

  <refsect2 id="app-pg-ctl-options">
   <title><!-- Options -->オプション</title>

    <variablelist>
     <varlistentry>
      <term>-D <replaceable class="parameter">datadir</replaceable></term>
      <listitem>
       <para>
        <!-- 
	Specifies the file system location of the database files.  If
	this is omitted, the environment variable
	<envar>PGDATA</envar> is used. -->

        データベースファイルのファイルシステムでの場所を指定します。省略されると、環境変数<envar>PGDATA</envar>が使われます。

       </para>
      </listitem>
     </varlistentry>

     <varlistentry>
      <term>-l <replaceable class="parameter">filename</replaceable></term>
      <listitem>
       <para>
        <!-- Append the server log output to
        <replaceable>filename</replaceable>.  If the file does not
        exist, it is created.  The umask is set to 077, so access to
        the log file from other users is disallowed by default.
        -->
        サーバーログ出力を<replaceable>filename</replaceable>に追加します。そのファイルが存在しない場合は作成されます。umaskは077に設定されるため、他のユーザーからのログファイルへのアクセスはデフォルトでは許可されません。

       </para>
      </listitem>
     </varlistentry>

     <varlistentry>
      <term>-m <replaceable class="parameter">mode</replaceable></term>
      <listitem>
       <para>
        <!-- 
	Specifies the shutdown mode.  <replaceable>mode</replaceable>
	may be <literal>smart</literal>, <literal>fast</literal>, or
	<literal>immediate</literal>, or the first letter of one of
	these three. -->

        停止モードを指定します。<replaceable>モード</replaceable>は<literal>smart</literal>、<literal>fast</literal>、<literal>immediate</literal>、もしくはこれらの3つのうちのどれかの最初の文字になります。

       </para>
      </listitem>
     </varlistentry>

     <varlistentry>
      <term>-o <replaceable class="parameter">options</replaceable></term>
      <listitem>
       <para>
        <!-- Specifies options to be passed directly to
	<application>postmaster</application>. -->

        オプションが直接<application>postmaster</application>に渡されるように指定します。

       </para>
       <para>
        <!--  
	The parameters are usually surrounded by single or double
	quotes to ensure that they are passed through as a group.
        -->

        パラメータは通常、1つのグループとして渡ることを保障するために、一重引用符または二重引用符で囲まれています。

       </para>
      </listitem>
     </varlistentry>

     <varlistentry>
      <term>-p <replaceable class="parameter">path</replaceable></term>
      <listitem>
       <para>
        <!-- 
	Specifies the location of the <filename>postmaster</filename>
	executable.  By default the postmaster is taken from the same
	directory as pg_ctl, or failing that, the hard-wired
	installation directory.  It is not necessary to use this
	option unless you are doing something unusual and get errors
	that the postmaster was not found. -->

        <filename>postmaster</filename>の実行プログラムの位置を指定します。デフォルトではpostmasterはpg_ctlと同じディレクトリ、そうでない場合は構築時に指定したインストールディレクトリとなります。このオプションは何か異例なことをしていてpostmasterが見つからないというようなエラーが出ない限り、使う必要はありません。

       </para>
      </listitem>
     </varlistentry>

     <varlistentry>
      <term>-w</term>
      <listitem>
       <para>
        <!-- 
	Wait for the start or shutdown to complete.  Times out after
	60 seconds.  This is the default for shutdowns. -->

        起動もしくは停止処理が終了するのを待ちます。60秒でタイムアウトします。停止処理のデフォルトです。

       </para>
      </listitem>
     </varlistentry>

     <varlistentry>
      <term>-W</term>
      <listitem>
       <para>
        <!-- 
        Do not wait for start or shutdown to complete.  This is the
        default for starts and restarts. -->

        起動もしくは停止が完了するのを待ちません。起動と再起動のデフォルトです。

       </para>
      </listitem>
     </varlistentry>

     <varlistentry>
      <term>-s</term>
      <listitem>
       <para>
       エラーメッセージのみ表示します。
       </para>
      </listitem>
     </varlistentry>

    </variablelist>
  </refsect2>

  <refsect2>
   <title><!-- Files -->ファイル</title>

   <para>
    <!-- 
    If the file <filename>postmaster.opts.default</filename> exists in
    the data directory, the contents of the file will be passed as
    options to the <application>postmaster</application>, unless
    overridden by the <option>-o</option> option. -->

    もし、ファイル<filename>postmaster.opts.default</filename>がデータディレクトリに存在する場合、<option>-o</option>で無効にされない限りは、ファイルの中身はオプションとして<application>postmaster</application>に渡されます。
   </para>
  </refsect2>

 </refsect1>


 <refsect1 id="R1-APP-PGCTL-2">
  <title><!-- Examples -->例</title>

  <refsect2 id="R2-APP-PGCTL-3">
   <title><!-- Starting the postmaster -->postmasterの起動</title>

   <para>
    <!-- To start up <application>postmaster</application>: -->
    <application>postmaster</application>を起動するには下記のようにします。
</para>

<screen>
<prompt>$</prompt> <userinput>pg_ctl start</userinput>
</screen>

   <para>
    <!-- 
    An example of starting the <application>postmaster</application>,
    blocking until postmaster comes up is: -->
    下記はpostmasterが立ち上がるまでブロックをする<application>postmaster</application>の起動方法の例です。
</para>

<screen>
<prompt>$</prompt> <userinput>pg_ctl -w start</userinput>
</screen>

   <para>
    <!-- For a <application>postmaster</application> using port 5433, and
    running without <function>fsync</function>, use: -->

    ポート5,433を使い<function>fsync</function>なしで起動する<application>postmaster</application>は以下のようにします。
</para>

<screen>
<prompt>$</prompt> <userinput>pg_ctl -o "-F -p 5433" start</userinput>
</screen>
  </refsect2>

  <refsect2 id="R2-APP-PGCTL-4">
   <title><!-- Stopping the postmaster -->postmasterの停止</title>
<screen>
<prompt>$</prompt> <userinput>pg_ctl stop</userinput>
</screen>

<para>
    <!-- stops postmaster. Using the <option>-m</option> switch allows one
    to control <emphasis>how</emphasis> the backend shuts down. -->

    上記のコマンドはpostmasterを停止します。<option>-m</option>オプションを使うと、<emphasis>どのように</emphasis>バックエンドがシャットダウンするかを制御できます。

   </para>
  </refsect2>

  <refsect2 id="R2-APP-PGCTL-5">
   <title><!-- Restarting the postmaster -->postmasterの再起動</title>

   <para>
    <!-- This is almost equivalent to stopping the
    <application>postmaster</application> then starting it again
    except that pg_ctl saves and reuses the command line options that
    were passed to the previously running instance.  To restart
    <application>postmaster</application> in the simplest form: -->
  
    この手順は<application>postmaster</application>を停止して起動させる場合と同じですが、違うのは、pg_ctlが以前起動していたインスタンスに渡されていたコマンドラインオプションを保存し再利用することです。以下に、<application>postmaster</application>を再起動するもっとも簡単な方法を示します。
</para>

<screen>
<prompt>$</prompt> <userinput>pg_ctl restart</userinput>
</screen>

   <para>
    <!-- To restart <application>postmaster</application>,
    waiting for it to shut down and to come up: -->

    <application>postmaster</application>の停止を待ってから立ち上げを行うには以下のようにします
</para>

<screen>
<prompt>$</prompt> <userinput>pg_ctl -w restart</userinput>
</screen>

   <para>
    <!-- To restart using port 5433 and disabling fsync after restarting: -->
    ポート5,433を使って再起動し、再起動後にfsyncを行わないようにするには以下のようにします
</para>

<screen>
<prompt>$</prompt> <userinput>pg_ctl -o "-F -p 5433" restart</userinput>
</screen>
  </refsect2>

  <refsect2 id="R2-APP-PGCTL-6">
   <title><!-- Showing postmaster status -->postmasterの状態の表示</title>

   <para>
    <!-- Here is a sample status output from
    <application>pg_ctl</application>: -->

    <application>pg_ctl</application>からの状態の出力の例を示します。
</para>

<screen>
<prompt>$</prompt> <userinput>pg_ctl status</userinput>
<computeroutput>pg_ctl: postmaster is running (pid: 13718)
Command line was:
/usr/local/pgsql/bin/postmaster '-D' '/usr/local/pgsql/data' '-p' '5433' '-B' '128'</computeroutput>
</screen>

<para>
    <!-- This is the command line that would be invoked in restart mode. -->
    これは再起動モードで呼び出されるコマンドラインです。
   </para>
  </refsect2>
 </refsect1>

 <refsect1>
  <title><!-- Bugs -->バグ</title>

  <para>
   <!-- 
   Waiting for complete start is not a well-defined operation and may
   fail if access control is set up in way that a local client cannot
   connect without manual interaction.  It should be avoided. -->

   完全な起動を行うためにすべての条件が揃う事を待つことは、必ずしもよい操作とは限りません。もしアクセス制御の設定が、ローカルクライアントが対話モードでのみ接続可能というものだった場合、どうしようもなくなります。これは避けるべきです。

  </para>
 </refsect1>

 <refsect1>
  <title><!-- See Also -->参照</title>

  <para>
   <xref linkend="app-postmaster">、<citetitle>&admin-guide;</citetitle>
  </para>
 </refsect1>

</refentry>

<!-- Keep this comment at the end of the file
Local variables:
mode:sgml
sgml-omittag:nil
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
sgml-parent-document:nil
sgml-default-dtd-file:"../reference.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:("/usr/lib/sgml/catalog")
sgml-local-ecat-files:nil
End:
-->
