如何利用php实现守护进程

你以为PHP只能做web端吗。

当你觉得PHP没什么好学的时候,感觉都会的时候你真的该好好想想了。php的使用简单真的很容易使人膨胀,过度自信认为自己精通php了,好好翻开php官方的手册看看,在PHP上的一大堆东西你都不懂不了解没见过不清楚,好意思吗。

----------------------------------------------------------------------------------------------------

下篇文章贴具体实现代码已经顺便将多进程实例也贴出来

----------------------------------------------------------------------------------------------------

php做守护进程呢需要用到两个扩展

POSIX

pcntl

放弃windows吧,拥抱Linux,反正windows你也装不了。。。

然后呢你需要大致了解下Linux系统的进程通信信号

既然要做守护进程那么就不能用传统的方式运行PHP脚本了,必须在cli模式下运行PHP脚本

如何实现多进程呢?这时需要使用到的是pcntl扩展中 pcntl_fock()方法,产生一个子进程,该方法会返回

0,-1,或者>0的三种结果

当为0时说明为子进程,-1出错,查看出错原因,大于0时则说明为父进程

那么守护进程的实现是当成功产生了一个子进程后将父进程退出,那么终端会认为程序执行完毕,会等待下一条命令,这是刚产生出来的子进程没有了父进程那么我们需要为其创建新的会话,调用pcntl_setsid()方法,这样做的原因是让子进程摆脱原会话的控制,原进程组的控制以及原终端的控制。其次我们需要为当前的子进程工作目录切换到根目录中,将文件权限掩码设置为0 并删除不必要的文件

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180315G0UZQ300?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券