PHP 实现守护进程
写 PHP CLI 程序的老司机们可能经常会写一些常驻进程,比如消息队列消费者进程,这些进程会一直运行,除非要发版,不然一般不会重启的,所以程序程序是不可能由我们通过 ssh 登录到服务器上通过终端来直接启动的(因为一旦断开 ssh 进程就退出了),常见的做法就是用 systemd
或者 supervisor
来使其成为 守护进程
,这样进程就可以一直运行,遇到错误意外退出也能被自动重启。
好学的你可能会思考守护进程到底是怎么实现的?为什么有的程序既可以自己就成为守护进程,又可以通过 systemd
来后台运行?如果不依赖外部,我们的 PHP 程序该怎样变成守护进程呢?