为了账号安全,请及时绑定邮箱和手机立即绑定

怎样防止php网页的处理进程在页面关闭后被中途kill掉?

怎样防止php网页的处理进程在页面关闭后被中途kill掉?

侃侃尔雅 2019-05-22 22:51:46
做了一个php页面调用shell脚本执行相关操作。shell脚本执行时间比较长(1-2分钟)且不能被同时调用。为了防止不同人在不同地方用php页面同时调用shell脚本。所以在调用shell脚本前用php做了一个文件锁,在shell脚本执行完成之后解锁。但是若用户点击php页面后马上又关闭,可能造成以下问题:文件被锁之后,shell脚本还未执行完,php处理进程就被kill掉了,然后文件未被解锁,php页面无法在调用shell脚本。这样才能防止以上的php进程被kill掉,从而保证上锁的文件最后被解锁。
查看完整描述

2 回答

?
翻过高山走不出你

TA贡献1875条经验 获得超3个赞

你在浏览器上关闭页面应该不会影响你的PHP进程啊。
PHP脚本调用shell一般是要阻塞的,如果页面被返回(响应到了客户端),php就已经完成了请求的处理,php脚本执行到了exit或者结尾。如果shell不阻塞的话,貌似也会放锁。
如果说用户请求php,但是没有等到响应就关闭,也应该不会影响到服务端PHP的执行。如果你发现文件锁解不掉就只能靠try...catch...finally了
                            
查看完整回答
反对 回复 2019-05-22
  • 2 回答
  • 0 关注
  • 392 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信