Php/docs/pcntl.example

提供:Dev Guides
< Php
移動先:案内検索

基本的な使用法

この例は、シグナルハンドラを有するデーモンプロセスをフォークします。

例1 プロセス制御の例

<?phpdeclare(ticks=1);$pid = pcntl_fork();if ($pid == -1) {     die("fork できません");} else if ($pid) {     exit(); // 親プロセスの場合} else {     // 子プロセスの場合}// 制御側の端末からデタッチif (posix_setsid() == -1) {    die("could not detach from terminal");}// シグナルハンドラを設定pcntl_signal(SIGTERM, "sig_handler");pcntl_signal(SIGHUP, "sig_handler");// 無限ループでタスク実行while (1) {    // 何か面白いことをここで行う}function sig_handler($signo) {     switch ($signo) {         case SIGTERM:             // 終了タスクを処理             exit;             break;         case SIGHUP:             // 再起動タスクを処理             break;         default:             // その他の全てのシグナルを処理     }}?>