在不关闭浏览器的情况下持续运行php循环

在不关闭浏览器的情况下持续运行php循环,php,while-loop,daemon,crontab,Php,While Loop,Daemon,Crontab,我有一个php循环,我想不断运行。目前,如果您让x.php在浏览器中运行,那么它将永远循环。只要浏览器窗口打开。。。而且效果很好 如何让它不断运行,而不必打开浏览器选项卡?我希望它全天候运行,如果它停止运行。它需要重新启动自己 谢谢您能从命令行运行它吗 nohup php -f /path/to/x.php & 使用nohup,即使用户注销,它也会继续运行 其他答案中的cron解决方案将在每次运行时启动一个新实例-不确定您是否希望这样做。但是,如果脚本死机并且您想重新启动它,那么您必须

我有一个php循环,我想不断运行。目前,如果您让x.php在浏览器中运行,那么它将永远循环。只要浏览器窗口打开。。。而且效果很好

如何让它不断运行,而不必打开浏览器选项卡?我希望它全天候运行,如果它停止运行。它需要重新启动自己


谢谢

您能从命令行运行它吗

nohup php -f /path/to/x.php &
使用
nohup
,即使用户注销,它也会继续运行


其他答案中的cron解决方案将在每次运行时启动一个新实例-不确定您是否希望这样做。但是,如果脚本死机并且您想重新启动它,那么您必须运行一个单独的守护进程来检查它是否正在运行,如果没有,则启动它。您可以创建一个简单的脚本来执行检查并开始运行它,然后cron该脚本以每5分钟运行一次,或者以您希望的频率运行一次。

您可以从命令行运行它吗

nohup php -f /path/to/x.php &
使用
nohup
,即使用户注销,它也会继续运行


其他答案中的cron解决方案将在每次运行时启动一个新实例-不确定您是否希望这样做。但是,如果脚本死机并且您想重新启动它,那么您必须运行一个单独的守护进程来检查它是否正在运行,如果没有,则启动它。您可以创建一个简单的脚本来执行检查并开始运行它,然后cron该脚本以每5分钟运行一次,或者以您想要的频率运行一次。

阅读相关内容。在他们的帮助下,您可以执行任何php脚本,每分钟24/7运行一次。

阅读。在他们的帮助下,您可以执行任何php脚本,每分钟24/7运行一次。

不确定您想要完成什么,但是听起来您想要运行的是一个脚本?如果是这样,您希望为它创建一个cron选项卡。可在此处找到语法:

例如:

5/* * * * 1 /usr/bin/php -q /location/to/your/script/file.php

不太确定您想要完成什么,但是听起来您想要运行的是一个脚本?如果是这样,您希望为它创建一个cron选项卡。可在此处找到语法:

例如:

5/* * * * 1 /usr/bin/php -q /location/to/your/script/file.php

这取决于如何触发PHP

如果希望它在浏览器中开始执行,则有几个选项。您可以在后台启动一个新进程(例如,使用生成另一个php进程的
exec调用shell脚本),也可以尝试提供的
ignore\u user\u abort()
方法

ignore\u user\u abort(true)
将完全按照tin上的说明执行,如果用户中止页面请求(将无休止地运行),后端PHP进程将不会注意到这一点。请注意,它并不适用于所有情况,例如,您不能将任何输出发送回浏览器。显然这是因为管道是关闭的,但我的意思是它不是一个可捕获的错误,脚本将停止执行


如果您不在浏览器中启动它(我建议这样做),我建议使用带有自定义脚本的cron。我会用一个每分钟都在运行的cron脚本来完成它。这个脚本最初将使用一个PID文件创建PHP进程,PHP将处理您需要它做的任何事情。每次后续运行脚本时,它都会检查PID文件是否存在,如果存在,则会检查进程是否处于活动状态。如果没有,它将按照最初的计划重复/PID文件创建过程。

这取决于您触发PHP的方式

如果希望它在浏览器中开始执行,则有几个选项。您可以在后台启动一个新进程(例如,使用生成另一个php进程的
exec调用shell脚本),也可以尝试提供的
ignore\u user\u abort()
方法

ignore\u user\u abort(true)
将完全按照tin上的说明执行,如果用户中止页面请求(将无休止地运行),后端PHP进程将不会注意到这一点。请注意,它并不适用于所有情况,例如,您不能将任何输出发送回浏览器。显然这是因为管道是关闭的,但我的意思是它不是一个可捕获的错误,脚本将停止执行

如果您不在浏览器中启动它(我建议这样做),我建议使用带有自定义脚本的cron。我会用一个每分钟都在运行的cron脚本来完成它。这个脚本最初将使用一个PID文件创建PHP进程,PHP将处理您需要它做的任何事情。每次后续运行脚本时,它都会检查PID文件是否存在,如果存在,则会检查进程是否处于活动状态。如果没有,它将按照最初的计划重复流程/PID文件创建