热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

swoole_process::wait()无法返回false问题

在yii2框架中1、初始化,注册信号处理12345678910public function init(){    parent::init();    $this->myPid = getmypid

在yii2框架中



1、初始化,注册信号处理

1
2
3
4
5
6
7
8
9
10
public function init()

{

    parent::init();

    $this->myPid = getmypid();



    ...



    // 注册信号处理函数,处理子进程结束时的回收工作

    \swoole_process::signal(SIGCHLD, [$this, 'finished']);

}

2、信号函数



1
2
3
4
5
6
7
8
9
10
11
12
13
public function finished($signo)

{

    // $blocking 参数可以指定是否阻塞等待,默认为阻塞

    while (($result = \swoole_process::wait(false))) {

        $pid = $result['pid'];

        $exitCode = $result['code'];

       

        ......



        // 释放工作表

        unset($this->works[$pid]);

    }

}

使用swoole_process::wait()后,脚本一直停留在控制台。即执行完毕,但是一直处于等待中,直到手动按下Ctrl + C 后命令才终止执行,不得已才使用

3、使用析构函数来终止主进程

1
2
3
4
5
6
public function __destruct()

{

    if (!count($this->works)) {

        \swoole_process::kill($this->myPid);

    }

}

但是其它具体执行的命令是正常结束的,比如一个报告文件report.txt

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
当前机器: 192.168.1.149    当前用户: zhgxun    当前代码分支: * master@* master 345f5bc fix app file

当前引导命令: ./yii etl/default/test

运行日志目录: /Users/zhgxun/Public/html/logs/20170326/18021



18037 : 启动 "./yii default/test 2017-01-01 2030-02-01"



18038 : 启动 "./yii default/a 2016-10-01 2016-12-01"



18039 : 启动 "./yii default/b 2016-10-01 2016-12-01"



18040 : 启动 "./yii default/c 2016-10-01 2016-12-01"





18038 : 结束: ./yii default/a 2016-10-01 2016-12-01 [begin:2017-03-26 16:39:30 end:2017-03-26 16:39:30] 历时:00秒



18039 : 结束: ./yii default/b 2016-10-01 2016-12-01 [begin:2017-03-26 16:39:30 end:2017-03-26 16:39:30] 历时:00秒



18040 : 结束: ./yii default/c 2016-10-01 2016-12-01 [begin:2017-03-26 16:39:30 end:2017-03-26 16:39:30] 历时:00秒

就是说具体的命令,比如18037 : 启动 "./yii default/test 2017-01-01 2030-02-01"都是在正常终止的,但是引导脚本(即控制台中启动的命令)./yii etl/default/test 却无法自动停止才使用了析构函数。

大家都是怎么回收执行完毕的脚本的呢?


   



推荐阅读
  • mac php错误日志配置方法及错误级别修改
    本文介绍了在mac环境下配置php错误日志的方法,包括修改php.ini文件和httpd.conf文件的操作步骤。同时还介绍了如何修改错误级别,以及相应的错误级别参考链接。 ... [详细]
  • JavaScript实现拖动对话框效果
    原标题:JavaScript实现拖动对话框效果代码实现:<!DOCTYPEhtml><htmllan ... [详细]
  • node.js 全局变量说明
    原标题:node.js全局变量说明文章目录全局对象 ... [详细]
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • Nginx使用(server参数配置)
    本文介绍了Nginx的使用,重点讲解了server参数配置,包括端口号、主机名、根目录等内容。同时,还介绍了Nginx的反向代理功能。 ... [详细]
  • 本文详细介绍了Linux中进程控制块PCBtask_struct结构体的结构和作用,包括进程状态、进程号、待处理信号、进程地址空间、调度标志、锁深度、基本时间片、调度策略以及内存管理信息等方面的内容。阅读本文可以更加深入地了解Linux进程管理的原理和机制。 ... [详细]
  • Linux如何安装Mongodb的详细步骤和注意事项
    本文介绍了Linux如何安装Mongodb的详细步骤和注意事项,同时介绍了Mongodb的特点和优势。Mongodb是一个开源的数据库,适用于各种规模的企业和各类应用程序。它具有灵活的数据模式和高性能的数据读写操作,能够提高企业的敏捷性和可扩展性。文章还提供了Mongodb的下载安装包地址。 ... [详细]
  • 本文介绍了使用哈夫曼树实现文件压缩和解压的方法。首先对数据结构课程设计中的代码进行了分析,包括使用时间调用、常量定义和统计文件中各个字符时相关的结构体。然后讨论了哈夫曼树的实现原理和算法。最后介绍了文件压缩和解压的具体步骤,包括字符统计、构建哈夫曼树、生成编码表、编码和解码过程。通过实例演示了文件压缩和解压的效果。本文的内容对于理解哈夫曼树的实现原理和应用具有一定的参考价值。 ... [详细]
  • 本文介绍了一种轻巧方便的工具——集算器,通过使用集算器可以将文本日志变成结构化数据,然后可以使用SQL式查询。集算器利用集算语言的优点,将日志内容结构化为数据表结构,SPL支持直接对结构化的文件进行SQL查询,不再需要安装配置第三方数据库软件。本文还详细介绍了具体的实施过程。 ... [详细]
  • 解决php错误信息不显示在浏览器上的方法
    本文介绍了解决php错误信息不显示在浏览器上的方法。作者发现php中的各种错误信息并不显示在浏览器上,而是需要在日志文件中查看。为了解决这个问题,作者提供了一种解决方式:通过修改php.ini文件中的display_errors参数为On,并重启服务。这样就可以在浏览器上直接显示php错误信息了。 ... [详细]
  • 直击热门考点——结构体内存对齐
    原标题:直击热门考点——结构体内存对齐文章目录前言一、引例 ... [详细]
  • 补丁是一个文本文件,其内容类似于gitdiff,但与代码一样,它也有关于提交的元数据;例如提交ID,日期,提交消息等。我们可以从提交创建一个补丁,而其他人可以将它们 ... [详细]
  • MySQL 的 NULL 值是怎么存储的?
    MySQL 的 NULL 值是怎么存储的? ... [详细]
  • yii框架目录结构详细分析说明
    php教程|php手册yii,目录结构php教程-php手册yii框架目录结构详细分析说明猫狗大战源码,华为云电脑ubuntu,梦见放走很多爬虫,parttmpphp,seo页面描 ... [详细]
  • 【laravel5.6】yii  Process class relies on proc_open, which is not available on your PHP installation.
    部署服务器的时候,使用composer来安装依赖。遇到了从错误提示信息中可以看到是因为关闭了PHP的proc_get_status()函数,那么如何解决 ... [详细]
author-avatar
vvdjiechipi48_2a247d
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有