如何保持持久的PHP脚本运行?

And*_*Hin 11 php sockets apache daemon

我有一个PHP脚本,用于侦听传入的套接字请求等.我需要在服务器上继续运行此脚本(它在无限循环内运行).

如何启动和管理此流程?我尝试通过SSH/putty启动它,但是一旦SSH连接超时,脚本就会死掉.

Act*_*Owl 7

myscript.php &
Run Code Online (Sandbox Code Playgroud)

这将在后台运行脚本

你可以检查一下

ps aux | grep myscript.php
Run Code Online (Sandbox Code Playgroud)

正如Patrick在下面的评论中提到的,从命令行运行PHP脚本没有最长执行时间.myscript.php将无限期地运行.

  • 从命令行运行时没有时间限制 (4认同)
  • 这并不是很稳定,因为脚本可能会因错误或内存泄漏而死亡并且无法再次启动。 (2认同)

KDr*_*ske 6

我们最近也有类似的需求。我们正在运行 Ubuntu 14.04 LTS 服务器,因此创建了一个upstart进程以在启动时启动该进程,并在它因任何原因退出时重新启动。

对我们来说效果非常好,包括自动重启;我们长时间运行的进程最终会失去 MySQL 连接。在upstart进程自动重新启动进程之前,脚本处理异常并退出。我们还添加了一个cron脚本来监控进程,以防万一出现更大的错误而upstart放弃尝试重新启动;如果简单的重启不能纠正先前的错误,我们有一个故障保护。