基本用法

此示例使用信号处理程序派生一个守护进程。

示例 #1 进程控制示例

<?php
declare(ticks=1);

$pid = pcntl_fork();
if (
$pid == -1) {
die(
"无法派生");
} else if (
$pid) {
exit();
// 我们是父进程
} else {
// 我们是子进程
}

// 从控制终端分离
if (posix_setsid() == -1) {
die(
"无法从终端分离");
}

// 设置信号处理程序
pcntl_signal(SIGTERM, "sig_handler");
pcntl_signal(SIGHUP, "sig_handler");

// 无限循环执行任务
while (1) {

// 在这里做一些有趣的事情

}

function
sig_handler($signo)
{

switch (
$signo) {
case
SIGTERM:
// 处理关闭任务
exit;
break;
case
SIGHUP:
// 处理重启任务
break;
default:
// 处理所有其他信号
}

}

?>
添加笔记

用户贡献的笔记

此页面没有用户贡献的笔记。
To Top