跳轉到內容

PHP 程式設計/守護程序

來自華夏公益教科書,開放的書籍,為開放的世界

一個 守護程序 是一個在後臺執行的應用程式,而不是直接由使用者操作。守護程序的例子有 CronMySQL

用 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 語句中的程式碼將在後臺執行,直到顯式呼叫 exitdie

應用程式

[編輯 | 編輯原始碼]

雖然守護一個指令碼很有用,但它並不適合每個指令碼。如果一個指令碼只需要在特定時間執行,它可以利用 Cron 來進行計劃執行。

另請參閱

[編輯 | 編輯原始碼]


華夏公益教科書