<?php /** * 入口函式 * 將此檔案儲存為 ProcessOpera.php * 在terminal中執行 /usr/local/php/bin/php ProcessOpera.php & * 檢視程式 ps aux|grep php */ ProcessOpera("runCode", array(), 8); /** * run Code */ function runCode($opt = array()) { //需要在守護程式中執行的程式碼 } /** * $func為子程式執行具體事物的函式名稱 * $opt為$func的引數 陣列形式 * $pNum 為fork的子程式數量 */ function ProcessOpera($func, $opts = array(), $pNum = 1) { while(true) { $pid = pcntl_fork(); if($pid == -1) { exit("pid fork error"); } if($pid) { static $execute = 0; $execute++; if($execute >= $pNum) { pcntl_wait($status); $execute--; } } else { while(true) { //somecode $func($opts); sleep(1); } exit(0); } } }