如何让php脚本在后台持续运行?
许多php脚本需要在后台持续运行,不受终端关闭的影响。例如,一个简单的PHP脚本(例如s.php):
<?php cli_set_process_title('queue-server'); while(true) { // ... 你的代码 ... } ?>
直接使用php s.php运行,终端关闭后脚本也会停止。 要实现类似workerman -d的后台运行效果,需要借助系统命令,而非PHP本身的功能。PHP解释器本身不具备守护进程管理能力,而workerman等工具是构建于PHP之上的应用,自带后台运行机制。
要让PHP脚本在后台运行,可以使用nohup命令:
nohup php s.php 2>&1 &
此命令将s.php脚本置于后台运行。2>&1将标准错误输出重定向到标准输出,&将进程放入后台。即使关闭终端,脚本仍会继续执行。
立即学习“PHP免费学习笔记(深入)”;
需要注意的是,PHP和Workerman是不同的工具,不能直接比较。Workerman、docker、redis、nginx等是应用层工具,自带后台运行配置。PHP作为脚本语言,不负责管理守护进程。 如需更复杂的后台运行逻辑,可在PHP脚本中自行实现守护进程。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END