通过 nohup 实现 php 脚本后台运行
如何让 php 脚本以后台运行?举例来说,当运行 php 脚本 cli 时,可以使用 ctrl c 终止进程。那么如何实现类似 workerman 的效果,通过添加 -d 参数直接后台执行呢?
解决方案:使用 nohup
nohup php s.php 2>&1 &
- nohup:将进程与终端分离,即使终端关闭,进程也会继续运行。
- 2>&1:将错误输出重定向到标准输出。
- &:将进程放入后台运行。
关于 nohup 和 workerman 的关系
立即学习“PHP免费学习笔记(深入)”;
workerman 和 php 是不同的工具。workerman 是使用 php 构建的应用程序,具有内置的后台运行配置。而 php 是一个脚本解释器,它的职责是运行 php 脚本。因此,php 本身不具备后台运行功能。
替代方案:在脚本中启动守护进程
如果需要在 php 脚本中启用守护进程,可以使用以下步骤:
- 创建一个守护进程类。
- 在该类中实现 fork() 方法将进程分离。
- 在脚本的主入口中,实例化守护进程类并调用 run() 方法。