首页 / 知识
保持PHP脚本作为守护程序运行的最佳方法是什么?
2023-04-13 21:02:00

What's the best way to keep a PHP script running as a daemon?使PHP脚本作为守护程序运行的最佳方法是什么,以及检查是否需要重新启动的最佳方法是什么。 我有一些脚本需要运行24/7,大多数情况下,我可以使用nohup运行它们。 但是,如果它们掉线了,监视它以便使其自动重启的最佳方法是什么? 如果您不能使用(适当的)初始化结构来执行此操作(您正在共享主机上,等等),请每隔几分钟使用cron运行脚本(可以使用您喜欢的任何一种语言编写),以检查查看它们是否正在运行,并在必要时重新启动它们。 最优雅的解决方案是phpdaemon或reactPHP。 我们通过将输出传递到邮件来运行守护程序。
这样,当/如果守护程序停止,它将发送邮件,并以这种方式通知我们。 当然,这仍然意味着需要手动重启守护进程,但是我们马上就会知道。通常,如果守护程序已停止,则意味着无论如何都需要处理其他事项,因此通常可以。 快速又肮脏的cron重新启动守护程序:
将USER替换为守护程序运行的用户,并将SCRIPTNAME替换为脚本的名称。将此粘贴在 更新 如果将其放入自己的crontab中:
运行
守护进程是一个在后台运行的linux进程。 apache或mysql是守护程序。
上面的代码摘自关于如何在php中创建守护程序的非常好的文章。您可以在链接上阅读 我已经成功运行了wget并将结果发送到共享服务器上的/ dev / null上。 我同意PHP并不是解决此问题的最佳工具,但是我可以理解为什么要使用PHP,以便可以重用应用程序中的组件,例如数据库访问等等。 我遇到了类似的问题,最终我开发了Fat Controller,它是用C编写的可以运行PHP脚本的守护程序。它也可以作为多线程守护程序运行,并行运行脚本的许多实例。 这里有更多信息和用例:http://www.4pmp.com/fatcontroller/ 我使用基于PHP的脚本从数据库读取并发送电子邮件(使用PEAR Mail_Queue库)。我从bash脚本中运行它,并基于返回的结果(来自" exit $ status;")停止运行,睡眠X秒或立即重新启动。 (我还将检查平均负载/睡眠状态到PHP脚本中,以避免给邮件系统造成压力)。 如果是必须长期运行的长期守护程序,那么我同意,这可能不是最好的选择(尽管我听说有些套接字服务器可以长期成功运行),但是, PHP 5.3现在也确实改善了垃圾回收,并且如果脚本编写得足够好而不会意外退出,那么内存应该比以前少了很多。 TBH,PHP可能不是最好的工具,实际上不是它的设计目的。我听说过尝试这种操作时会发生内存泄漏和其他不良情况。另外请记住,每次执行脚本,PHP仅具有有限数量的资源ID(用于文件句柄,数据库连接等)。 尽管我没有编写这类应用程序的实际经验,但最好还是使用其他东西,例如python或perl,但我确实知道PHP不适合您的尝试。 |
最新内容
相关内容
linux脚本命令输信息?
linux脚本命令输信息?,系统,信息,代码,脚本,数据,工具,发行,命令,变量,文件,linux下shell脚本命令shell变量调出命令。linux中的shell脚本有多linux上启动脚本命令?
linux上启动脚本命令?,服务,状态,系统,代码,脚本,工作,周期性,命令,文件,方法,Python脚本在Linux下如何自启动与定时任务的实例详解Linux在启linux开启运行命令?
linux开启运行命令?,系统,服务,工作,管理,状态,命令,标准,情况,环境,工具,linux中如何开机启动运行指定的应用程序或指令?1、开机启动时自动运linux运行wps命令?
linux运行wps命令?,软件,官网,名称,时间,电脑,系统,工具,环境,项目,数据,wps支持linux命令行下word转pdf吗?1、通过浏览器进入到wps官网,然后点linux运行cmd命令?
linux运行cmd命令?,电脑,系统,状态,情况,环境,命令,单位,管理,设备,数据,电脑运行命令怎么打开电脑运行命令需要同时按下“win图标”键和“R”linux重新启动命令是?
linux重新启动命令是?,系统,工作,设备,标准,命令,灵活,用户,电源,提示,主机,linux重启命令Linux的五个重启命令为:shutdown、poweroff、init、rlinux运行两个命令?
linux运行两个命令?,网络,地址,系统,工作,暂停,命令,网站,密码,网上,入口,Linux下必须知道的11个网络命令1、netstat -r:打印路由表。路由表保linux命令运行代码?
linux命令运行代码?,代码,单位,系统,环境,连续,保险,工具,命令,文件,音乐,Linux中,运行一个C语言程序如何运行1、编译。由.c文件生成.o文件,写linux下编写脚本命令?
linux下编写脚本命令?,代码,时间,工具,标准,系统,实战,平台,最新,网站,文件,linux写脚本,需要ls只显示前10个文件,怎么实现?在linux中如果用lslinux定时器脚本命令?
linux定时器脚本命令?,系统,代码,时间,工具,工作,定期,周期性,异常,任务,脚本,Linux设置定时任务打开终端窗口,并使用 crontab -e 命令编辑当前linux停止脚本命令行?
linux停止脚本命令行?,系统,工作,平台,命令,基础,第一,环境,信息,终端,程序,在linux系统里,如何用命令行实现在10分钟后关闭系统?1、shutdownlinux命令运行脚本?
linux命令运行脚本?,代码,系统,工作,设计,状态,命令,脚本,文件,目录,终端,运行linux脚本,遇到要按回车键,怎么让它自动应答,继续运行脚本?1、