PHP如何编写守护进程示例代码?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1932个文字,预计阅读时间需要8分钟。
目录+前言+成为守护进程的步骤+实现+说明+创建子进程并退出父进程+创建新的会话+重置文件编码+改变工作目录+关闭标准输入输出+其他+注意事项+前言+编写PHP CLI程序的旧式机器可能经常遇到的问题
目录
- 前言
- 成为守护进程的步骤
- 实现
- 说明
- 创建子进程并退出父进程
- 创建新的会话
- 重设文件掩码
- 改变工作目录
- 关闭标准输入输出
- 其他
- 注意事项
前言
写 PHP CLI 程序的老司机们可能经常会写一些常驻进程,比如消息队列消费者进程,这些进程会一直运行,除非要发版,不然一般不会重启的,所以程序程序是不可能由我们通过 ssh 登录到服务器上通过终端来直接启动的(因为一旦断开 ssh 进程就退出了),常见的做法就是用systemd或者supervisor来使其成为守护进程,这样进程就可以一直运行,遇到错误意外退出也能被自动重启。
好学的你可能会思考守护进程到底是怎么实现的?为什么有的程序既可以自己就成为守护进程,又可以通过systemd来后台运行?如果不依赖外部,我们的 PHP 程序该怎样变成守护进程呢?
成为守护进程的步骤
其实只需要创建子进程并退出父进程,将要处理的工作在子进程中进行就可以实现一个守护进程了。
本文共计1932个文字,预计阅读时间需要8分钟。
目录+前言+成为守护进程的步骤+实现+说明+创建子进程并退出父进程+创建新的会话+重置文件编码+改变工作目录+关闭标准输入输出+其他+注意事项+前言+编写PHP CLI程序的旧式机器可能经常遇到的问题
目录
- 前言
- 成为守护进程的步骤
- 实现
- 说明
- 创建子进程并退出父进程
- 创建新的会话
- 重设文件掩码
- 改变工作目录
- 关闭标准输入输出
- 其他
- 注意事项
前言
写 PHP CLI 程序的老司机们可能经常会写一些常驻进程,比如消息队列消费者进程,这些进程会一直运行,除非要发版,不然一般不会重启的,所以程序程序是不可能由我们通过 ssh 登录到服务器上通过终端来直接启动的(因为一旦断开 ssh 进程就退出了),常见的做法就是用systemd或者supervisor来使其成为守护进程,这样进程就可以一直运行,遇到错误意外退出也能被自动重启。
好学的你可能会思考守护进程到底是怎么实现的?为什么有的程序既可以自己就成为守护进程,又可以通过systemd来后台运行?如果不依赖外部,我们的 PHP 程序该怎样变成守护进程呢?
成为守护进程的步骤
其实只需要创建子进程并退出父进程,将要处理的工作在子进程中进行就可以实现一个守护进程了。

