<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/refs.fileprocess.process.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'ja',
  ),
  'this' => 
  array (
    0 => 'book.pcntl.php',
    1 => 'PCNTL',
    2 => 'プロセス制御',
  ),
  'up' => 
  array (
    0 => 'refs.fileprocess.process.php',
    1 => 'プロセス制御',
  ),
  'prev' => 
  array (
    0 => 'function.expect-popen.php',
    1 => 'expect_popen',
  ),
  'next' => 
  array (
    0 => 'pcntl.setup.php',
    1 => 'インストール/設定',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'ja',
    'path' => 'reference/pcntl/book.xml',
  ),
  'history' => 
  array (
  ),
  'extra_header_links' => 
  array (
    'rel' => 'alternate',
    'href' => '/manual/en/feeds/book.pcntl.atom',
    'type' => 'application/atom+xml',
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="book.pcntl" class="book">
 
 <h1 class="title">プロセス制御</h1>
 
 
 
 <div id="intro.pcntl" class="preface">
  <h1 class="title">はじめに</h1>
  <p class="para">
   PHP がサポートするプロセス制御関数は、Unix 形式のプロセス生成、
   プロセス実行、シグナル処理、プロセス終了機能を実装しています。
   プロセス制御は Web サーバー環境で有効にするべきではなく、プロセス
   制御関数のどれかが Web サーバー環境で使用された場合には、予期しない結果を
   生じる可能性があります。
  </p>
  <p class="para">
   この文書は、プロセス制御関数の一般的な使用法を説明しようとするものです。
   Unix のプロセス制御に関する詳細な情報については、fork(2),
   waitpid(2) および signal(2) のようなシステムのドキュメントや、
   W. Richard Stevens による Advanced Programming in the UNIX Environment (Addison-Wesley)
   のような優れた参考書を読まれることを推奨します。
  </p>
  <p class="para">
   現在 PCNTL はシグナルハンドルコールバックの仕組みとして ticks を
   使用しており、これは以前の仕組みよりずっと高速です。この変更は
   &quot;user ticks&quot; を使用するのと同じことです。<span class="function"><strong>declare()</strong></span>
   を使用して、プログラム中でコールバックの発生を許可する場所を指定する
   必要があります。これにより、非同期のイベントを処理する際の
   オーバーヘッドを最小限に抑えることが可能となります。以前は、pcntl を
   有効にして PHP をコンパイルすると、pcntl の使用の有無にかかわらず
   常にこのオーバーヘッドの被害を被っていたのです。
  </p>

  <blockquote class="note"><p><strong class="note">注意</strong>: <span class="simpara">この拡張モジュールは Windows
環境では利用できません。</span></p></blockquote>
 </div>
 

 









 






 








 
 





 
 










<ul class="chunklist chunklist_book"><li><a href="pcntl.setup.php">インストール/設定</a><ul class="chunklist chunklist_book chunklist_children"><li><a href="pcntl.installation.php">インストール手順</a></li></ul></li><li><a href="pcntl.constants.php">定義済み定数</a></li><li><a href="pcntl.examples.php">例</a><ul class="chunklist chunklist_book chunklist_children"><li><a href="pcntl.example.php">基本的な使用法</a></li></ul></li><li><a href="enum.pcntl-qosclass.php">Pcntl\QosClass</a> — Pcntl\QosClass Enum</li><li><a href="ref.pcntl.php">PCNTL 関数</a><ul class="chunklist chunklist_book chunklist_children"><li><a href="function.pcntl-alarm.php">pcntl_alarm</a> — シグナルを送信するアラームを設定する</li><li><a href="function.pcntl-async-signals.php">pcntl_async_signals</a> — 非同期のシグナルハンドリングを有効/無効にするか、古い設定を返す</li><li><a href="function.pcntl-errno.php">pcntl_errno</a> — pcntl_get_last_error のエイリアス</li><li><a href="function.pcntl-exec.php">pcntl_exec</a> — 現在のプロセス空間で指定したプログラムを実行する</li><li><a href="function.pcntl-fork.php">pcntl_fork</a> — 現在実行中のプロセスをフォークする</li><li><a href="function.pcntl-get-last-error.php">pcntl_get_last_error</a> — 直近の pcntl 関数が失敗したときのエラー番号を取得する</li><li><a href="function.pcntl-getcpuaffinity.php">pcntl_getcpuaffinity</a> — プロセスのCPUアフィニティを取得する</li><li><a href="function.pcntl-getpriority.php">pcntl_getpriority</a> — プロセスの優先度を取得する</li><li><a href="function.pcntl-getqos-class.php">pcntl_getqos_class</a> — 現在のスレッドの QoS クラスを取得する</li><li><a href="function.pcntl-rfork.php">pcntl_rfork</a> — プロセスのリソースを管理する</li><li><a href="function.pcntl-setcpuaffinity.php">pcntl_setcpuaffinity</a> — プロセスのCPUアフィニティを設定する</li><li><a href="function.pcntl-setpriority.php">pcntl_setpriority</a> — プロセスの優先度を変更する</li><li><a href="function.pcntl-setqos-class.php">pcntl_setqos_class</a> — 現在のスレッドの QoS クラスを設定する</li><li><a href="function.pcntl-signal.php">pcntl_signal</a> — シグナルハンドラを設定する</li><li><a href="function.pcntl-signal-dispatch.php">pcntl_signal_dispatch</a> — ペンディングシグナル用のハンドラをコールする</li><li><a href="function.pcntl-signal-get-handler.php">pcntl_signal_get_handler</a> — 指定されたシグナルの現在のハンドラを取得する</li><li><a href="function.pcntl-sigprocmask.php">pcntl_sigprocmask</a> — ブロックされたシグナルを設定あるいは取得する</li><li><a href="function.pcntl-sigtimedwait.php">pcntl_sigtimedwait</a> — タイムアウトつきでシグナルを待つ</li><li><a href="function.pcntl-sigwaitinfo.php">pcntl_sigwaitinfo</a> — シグナルを待つ</li><li><a href="function.pcntl-strerror.php">pcntl_strerror</a> — 指定した errno に対応するシステムのエラーメッセージを取得する</li><li><a href="function.pcntl-unshare.php">pcntl_unshare</a> — プロセスの実行コンテキストの一部を切り離す</li><li><a href="function.pcntl-wait.php">pcntl_wait</a> — 待つかフォークした子プロセスのステータスを返す</li><li><a href="function.pcntl-waitid.php">pcntl_waitid</a> — 子プロセスの状態変化を待つ</li><li><a href="function.pcntl-waitpid.php">pcntl_waitpid</a> — 待つかフォークした子プロセスのステータスを返す</li><li><a href="function.pcntl-wexitstatus.php">pcntl_wexitstatus</a> — 終了した子プロセスのリターンコードを返す</li><li><a href="function.pcntl-wifexited.php">pcntl_wifexited</a> — ステータスコードが正常終了を表しているかどうかを調べる</li><li><a href="function.pcntl-wifsignaled.php">pcntl_wifsignaled</a> — ステータスコードがシグナルによる終了を表しているかどうかを調べる</li><li><a href="function.pcntl-wifstopped.php">pcntl_wifstopped</a> — 子プロセスが現在停止しているかどうかを調べる</li><li><a href="function.pcntl-wstopsig.php">pcntl_wstopsig</a> — 子プロセスを停止させたシグナルを返す</li><li><a href="function.pcntl-wtermsig.php">pcntl_wtermsig</a> — 子プロセスを終了させたシグナルを返す</li></ul></li></ul></div><?php manual_footer($setup); ?>