发布于 1970-01-01 08:00
  • 4 个回答
    • 类似在windows下强制结束进程,会提示你丢失有关数据,因为进程在不知情的情况下被突然结束,不能有效处理善后。

      kill 进程已经不在PHP的管理范围了,这个是系统层面的了。

      所以析构函数也不会执行,因为执行的前提是PHP主动触发,现在PHP都没了。

      kill前是根据配置申请内存,php自己维护、回收。kill之后的内存释放当然是属于linux维护了,即使剩余僵尸进程,也是系统管理。

      通知PHP进程结束,可以试试信号,fpm自带信号处理,restart、stop等。

      2022-11-30 21:57 回答
    • 通常不会,php代码通常都不会去捕获kill发送的信号。
      而且我也不确定php是不是有能力捕获。

      2022-11-30 21:57 回答
    • 另:如果我的需求是:通知PHP进程结束(比如PHP当前是个死循环),让PHP自己完成生命周期,要怎么处理?

      解决方法

      开始时间 = 当前时间
      生命周期时间 = 300
      while(ture)
      {
           if (当前时间 - 开始时间) >=300
               退出
           else
               执行业务逻辑
      }

      不满足题主需求~静待高明

      2022-11-30 21:57 回答
    • KILL一个进程,进程的内存当然由操作系统回收
      如果你有信号捕获的需求,请看PHP的PCNTL扩展

      2022-11-30 21:57 回答
    撰写答案
    今天,你开发时遇到什么问题呢?
    立即提问
    PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
    Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有