PCNTL
PHP Manual

導入

PHP がサポートするプロセス制御関数は、Unix 形式のプロセス生成、 プロセス実行、シグナル処理、プロセス終了機能を実装しています。 プロセス制御は Web サーバー環境で有効にするべきではなく、プロセス 制御関数のどれかが Web サーバー環境で使用された場合には、予期しない結果を 生じる可能性があります。

この文書は、プロセス制御関数の一般的な使用法を説明しようとするものです。 Unix のプロセス制御に関する詳細な情報については、fork(2), waitpid(2) および signal(2) のようなシステムのドキュメントや、 W. Richard Stevens による Advanced Programming in the UNIX Environment (Addison-Wesley) のような優れた参考書を読まれることを推奨します。

現在 PCNTL はシグナルハンドルコールバックの仕組みとして ticks を 使用しており、これは以前の仕組みよりずっと高速です。この変更は "user ticks" を使用するのと同じことです。 declare() を使用して、プログラム中でコールバックの発生を許可する場所を指定する 必要があります。これにより、非同期のイベントを処理する際の オーバーヘッドを最小限に抑えることが可能となります。以前は、pcntl を 有効にして PHP をコンパイルすると、pcntl の使用の有無にかかわらず 常にこのオーバーヘッドの被害を被っていたのです。

PHP 4.3.0 より前のバージョンで pcntl を使用していたすべてのスクリプトに ついて、1 点だけ修正する必要があります。それは、コールバックを許可 したい場所に declare() を使用するか、あるいは declare() の新しいグローバル書式を使用して スクリプト全体で ticks を有効にすることです。

注意: この拡張モジュールは Windows 環境では利用できません。


PCNTL
PHP Manual