• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

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

php 搞代码 4年前 (2022-01-25) 26次浏览 已收录 0个评论
文章目录[隐藏]

<body>

如果我kill PHP的进程

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

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

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

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

回复内容:

<body>

如果我kill PHP的进程

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

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

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

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

类似在8本文来源gao.dai.ma.com搞@代*码(网$

搞代gaodaima码

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

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

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

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

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

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

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

解决方法

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

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

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


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:shell – linux kill php进程,对PHP的生命周期产生怎样的影响?

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址