当前位置:首页 > PHP > 正文内容

php守护进程

高老师7年前 (2019-04-27)PHP2014
<?php
/**
 * daemonize让当前脚本为守护进程执行
 * @param string $callback 匿名函数
 */
function daemonize($callback)
{
    //创建子进程
    $pid = pcntl_fork();
    if ($pid < 0)
    {
        exit('创建子进程失败退出');
    }
    elseif ($pid)
    {
        exit('主进程退出');
    }
    else
    {
        //设置子进程为会话leader
        $sid = posix_setsid();
        if ($sid < 0)
        {
            exit('设置子进程为leader失败');
        }
        $callback();
    }
}

//执行任务来测试
$callback = function () {
    for ($i=0;$i<10000;$i++)
    {
        file_put_contents('1.txt',$i.PHP_EOL,FILE_APPEND);
    }
};
daemonize($callback);

先让主进程退出,然后设置子进程为会话组长即可

扫描二维码推送至手机访问。

版权声明:本文由高久峰个人博客发布,如需转载请注明出处。

本文链接:https://blog.20230611.cn/post/88.html

分享给朋友:

“php守护进程” 的相关文章

php生成验证码

php生成验证码

<?php //高先生简单验证码. //随机数 //为什么循环0-15的数字 //因为要实现最简单的字母和数字混搭 //16进制0-9   a-f //dechex 十进制转换为16进制 //创建一个四位的验证码. //$nmsg.  ...

php soap 捕获异常,使用try catch 捕获Soap 异常

php soap 捕获异常,使用try catch 捕获Soap 异常

项目中使用服务来执行webservice,由于对方系统api不稳定,经常导致服务崩溃,只能重启,一个月差不多要重启一次。初期的解决办法是捕获异常,然后continue掉。<?php try {     $url = 'http...

php多进程实现任务管理器,定时执行任务,支持守护

php多进程实现任务管理器,定时执行任务,支持守护

主要原理是通过PHP创建多个子进程,在子进程中发送进程闹钟信号,然后再监听闹钟信号中继续发送闹钟信号。同时通过父进程设置非阻塞运行。代码如下:<?php /**  * 订单任务  */ class Order {    &n...

php new class

php new class

<?php $member = new class {     public function getInfo()     {    ...

posix_ttyname函数详解

posix_ttyname函数详解

posix_ttyname - 获取当前终端设备名称。<?php     var_dump( posix_ttyname(STDOUT) );我们启动一个终端,执行上面的代码输出:/dev/tty1我们再启动一个终端,执行上面的代码输...