PHP 程式設計/守護程序
外觀
< PHP 程式設計
(重定向自 PHP 程式設計/CLI/守護程序)一個 守護程序 是一個在後臺執行的應用程式,而不是直接由使用者操作。守護程序的例子有 Cron 和 MySQL。
用 PHP 守護一個程序非常容易,需要使用編譯了 --enable-pcntl 的 PHP 4.1 或更高版本。
我們將從 set_time_limit(0) 開始,讓我們的指令碼無限期執行。接下來,我們使用 pcntl_fork() 分叉 PHP 程序。最後,我們使用 posix_setsid() 告訴子程序在後臺作為會話首領執行。
<?
set_time_limit(0); // Remove time limit
if (pcntl_fork()) { // Fork process
print "Daemon running.";
} else {
$sid = posix_setsid(); // Make child process session leader
if ($sid < 0)
exit;
while (true) {
// Daemon script goes here
}
}
?>
while 語句中的程式碼將在後臺執行,直到顯式呼叫 exit 或 die。
雖然守護一個指令碼很有用,但它並不適合每個指令碼。如果一個指令碼只需要在特定時間執行,它可以利用 Cron 來進行計劃執行。