如何在我的服务器上无限期地运行php程序

如何在我的服务器上无限期地运行php程序,php,infinite,Php,Infinite,我已经编写了php程序并上传到服务器上。我想无限期地运行这个程序。我的程序源如下: <?php while (1<2){ make something; } ?> 当然,如果我在浏览器中打开此页面,它将运行,但如果我关闭电脑,它将停止工作。如何在不打开任何浏览器的情况下无限地运行此程序。在命令行中运行或作为cronjob运行;您还可以检查是否将php文件设置为系统守护程序: 使用PHP作为守护进程可以使它无限期地运行,但是您可能必须定期重置它,以确保它不会堆叠内存 顺便

我已经编写了php程序并上传到服务器上。我想无限期地运行这个程序。我的程序源如下:

<?php
while (1<2){
make something;
}
?>


当然,如果我在浏览器中打开此页面,它将运行,但如果我关闭电脑,它将停止工作。如何在不打开任何浏览器的情况下无限地运行此程序。

在命令行中运行或作为cronjob运行;您还可以检查是否将php文件设置为系统守护程序:

使用PHP作为守护进程可以使它无限期地运行,但是您可能必须定期重置它,以确保它不会堆叠内存

顺便说一下:

while( true )

也可以使用。

您可以使用启动新命令行进程的
popen()
启动脚本。因此,您可以使用所需的脚本启动CLI PHP。

您可以使用deamons(服务),必须运行脚本

这样做:

<?php
    set_time_limit(0);
    ignore_user_abort(true);
    while(true) {
        //Do something
    }
?>

但是没有很好的理由这样做是一个非常糟糕的主意。
您可以在CLI中运行这种脚本,并使用SIGINT或SIGKILL来确保在不重新启动apache服务器的情况下停止脚本。。。(为什么我只是解释一下?别这么做,伙计,这很危险…

在linux服务器上无限期运行java程序时,我遇到了同样的问题

我通过使用linux“screen”命令解决了这个问题,找到了一些说明

您可以试试这个-

<?php
    while(1) {
        "some code"
    }
?>


In*nix
PHP并不是真正设计为在无止境循环中运行的。在大多数服务器上,有一个最大执行时间(defilt为30秒),该时间将假定脚本在该点出现故障后仍在运行并将其关闭。此外,您的技术将在一个内核上导致100%的CPU使用率,因为它将在无休止的循环中执行计算。您可能希望为需要像这样运行的应用程序(node.js)寻找一种不同的技术,并且您需要使用不同于忙碌等待(可能是sleep())的方法为什么要无限地运行脚本?我想你应该经常检查一些东西,对吗?我不知道是应该DV告诉他怎么做,还是UV告诉他为什么不应该。一段时间(真的)循环是个非常糟糕的主意,即使你花了一些时间在循环睡眠中。PHP不适合这种类型的工作,与其把问题当作钉子来处理,不如找一个比PHP锤子更合适的工具。@GordonM我知道,但它与
1相同