2024 年 PHP 日本大会

基础用法

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

示例 #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