我正在计划开发一个用PHP编写的服务器,它可以为套接字请求提供服务。我使用免费主机(Heliohost)进行测试,它有cPanel。到目前为止,我唯一能够想到让PHP脚本始终运行的是编写一个运行bash脚本的cron作业来检查ps
以查看PHP是否已经在运行,如果是不是,开始吧。
有更好的方法吗?也许是一种在HTTP请求上启动PHP线程并在请求被服务后继续在Apache中运行的方法?
答案 0 :(得分:2)
您几乎肯定无法成功运行Apache的持久进程。它旨在阻止该场景(尽管如果你可以进入fork(2)
系统调用,它可能是可行的)。我不建议尝试它。
更有意义的是,如果您使用托管服务提供商,您可以编写自己的crontab(5)
规范和直接运行PHP解释器。然后你可以在crontab(5)
添加一行,如:
@reboot /path/to/php /path/to/script.php
您的脚本应该执行通常的daemonization任务,以便cron(8)
不会等待您的进程退出。