跳转到内容

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 来进行计划执行。

另请参阅

[编辑 | 编辑源代码]


华夏公益教科书