shell - linux kill php进程,对PHP的生命周期产生怎样的影响?

php中文网
发布: 2016-06-06 20:10:25
原创
1396人浏览过

如果我kill php的进程

PHP的进程是否会执行 __destruct()析构函数?

对PHP的生命周期起到什么影响?

shell - linux kill php进程,对PHP的生命周期产生怎样的影响?

我觉得linux KILL的话,已经脱离了PHP的掌控了,跟PHP生命周期已经没有关系了,是这样理解么?
如果这样,那PHP进程占用的内存是谁来维护?

立即学习PHP免费学习笔记(深入)”;

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

与光AI
与光AI

一站式AI视频工作流创作平台

与光AI 66
查看详情 与光AI

回复内容:

如果我kill php的进程

PHP的进程是否会执行 __destruct()析构函数?

对PHP的生命周期起到什么影响?

shell - linux kill php进程,对PHP的生命周期产生怎样的影响?

我觉得linux KILL的话,已经脱离了PHP的掌控了,跟PHP生命周期已经没有关系了,是这样理解么?
如果这样,那PHP进程占用的内存是谁来维护?

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

类似在windows下强制结束进程,会提示你丢失有关数据,因为进程在不知情的情况下被突然结束,不能有效处理善后。

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

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

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

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

通常不会,php代码通常都不会去捕获kill发送的信号。
而且我也不确定php是不是有能力捕获。

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

解决方法

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

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

KILL一个进程,进程的内存当然由操作系统回收
如果你有信号捕获的需求,请看PHP的PCNTL扩展

相关标签:
PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号