不停地打开浏览器,不断运行php循环

时间:2012-05-29 22:13:19

标签: php while-loop daemon crontab

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

如果我不必坐在浏览器标签上,我怎么能让它一直运行?我想让它全天候运行,如果它停止运行。它需要重新启动。

由于

4 个答案:

答案 0 :(得分:2)

可以从命令行运行吗?

nohup php -f /path/to/x.php &

使用nohup即使用户退出也会继续运行。

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

答案 1 :(得分:1)

这取决于你是如何触发PHP的。

如果您希望它在浏览器中启动它,您有几个选项。您可以在后台启动一个新进程(例如,使用exec调用shell脚本,例如,生成另一个php进程),或者您可以尝试提供的ignore_user_abort()方法。

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

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

答案 2 :(得分:0)

了解cron jobs。在他们的帮助下,您可以执行任何PHP脚本,每周7天,每天24小时运行。

答案 3 :(得分:0)

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

http://content.hccfl.edu/pollock/unix/crontab.htm

一个例子可能是:

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