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