-
- /home/jerry/Public/php-5.4.0/ext/pcntl
コードをコピー
説明:
int pcntl_fork ( void )
pcntl_fork() 関数は、PID (プロセス ID) と PPID (親プロセス ID) のみが親プロセスと異なる子プロセスを作成します。
成功すると、生成された子プロセスの PID が親プロセスの実行スレッドに返され、子プロセスの実行スレッドには 0 が返されます。
失敗すると、親プロセス コンテキストで -1 が返され、子プロセスは作成されず、PHP エラーが発生します。
int pcntl_wait ( int &$status [, int $options = 0 ] )
pcntl_wait — フォークの子プロセスのステータスを待つか返す
void pcntl_exec ( string $path [, array $args [, array $envs ]] )
pcntl_exec — 現在のプロセス空間で指定されたプログラムを実行します
例:
-
- /**
- * pcntl_fork マルチプロセス コード例
- * bbs.it-home.org を編集する
- */
- $cmds=array(
- array('/home/jerry/projects/www/test2.php'),
- array('/home /jerry/projects/www/test3.php')
- );
- foreach($cmds as $cmd){
- $pid=pcntl_fork();
- if($pid==-1){
- //プロセスの作成に失敗しました
- echo '子プロセスの作成が失敗した場合は -1 を返す';
- exit(-1);
- }
- else if($pid){
- //親プロセスは子プロセス番号を取得するため、実行されるロジックは次のとおりです親プロセスによる
- pcntl_wait($status,WNOHANG);
- }
- else{
- //サブプロセス処理ロジック
- sleep(5);
- pcntl_exec('/usr/bin/php',$cmd);
- exit(0) );
- }
- }
- ?>
コードをコピー
|