Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/239.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我的PHP While(true)在cpanel中自动停止_Php_Cpanel - Fatal编程技术网

我的PHP While(true)在cpanel中自动停止

我的PHP While(true)在cpanel中自动停止,php,cpanel,Php,Cpanel,我在本地主机上测试了一整天这个脚本,它仍然在工作。但在cpanel中,此脚本会自动停止 set_time_limit(0); ini_set('memory_limit', '-1'); $run = TRUE; $nowtime = date("Y-m-d H:i"); while($run){ $stop = GetSetting("Stop"); $time = date("Y-m-d H:i");

我在本地主机上测试了一整天这个脚本,它仍然在工作。但在cpanel中,此脚本会自动停止

    set_time_limit(0);
    ini_set('memory_limit', '-1');
    $run = TRUE;
    $nowtime = date("Y-m-d H:i");

    while($run){
        $stop = GetSetting("Stop");
        $time = date("Y-m-d H:i");
        if($stop){
            $run = FALSE; // stopped when setting changed
            continue;
        }
        if($time != $nowtime){
            log_message("debug","Still Running On ".$time); //checking if it still running every minute
        }
        $nowtime = $time;
    }

你认为发生了什么事?有哪些可能的案例使其停止?是关于记忆吗?还是服务器配置?还是其他可能性?

这是因为您的服务器中有php.ini和php config。您必须更改php的时间限制
通过ini_set();要做到这一点,通过从“命令行”运行PHP,您可以非常轻松地做到这一点。下面是一个示例脚本,显示“概念证明”。我在WindowsXP上运行PHP5.3.18(oi!,StopLaffin')

我显示捕获的输出

脚本:

<?php
    // P:\developer\xampp\htdocs\testmysql\Q22710846.php
    //
    // run this from the command line - press ctrl-c to kill the task.

    set_time_limit(0);
    $run = TRUE;
    $nowtime = date("Y-m-d H:i:s");

    $debug = false; // set true to stop after 10
    $loopCount = 10;

    if (!$debug) {
       echo "press ctrl-c to end the task as it will forever!\n\n";
    }
    while(($debug && $loopCount) || (!$debug && $run)) { // will run forever...

        $nowtime = date("Y-m-d H:i:s");
        echo 'The time now is, beep, beep, beep : ', $nowtime, "\n";

        // generate a random delay of between 1 and 10 seconds
        $delay = mt_rand(1, 10);
        echo 'waiting for : ', $delay, " seconds\n";
        sleep($delay);

        // log_message("debug","Still Running On ".$time); //checking if it still running every minute

        if ($debug) {
          $loopCount--;
        }

    }
?>

你查过日志了吗?“getSetting”函数是做什么的(顺便问一下,函数应该以小写字母开头)?你有没有检查过时限有没有改变?使用此脚本,您到底想存档什么?GetSetting是检查数据库的函数,其目的是在设置为1时停止while,因此当stop==1时,则停止while。我创建了一个持续运行的守护进程系统来创建一些不能由cron作业处理的作业。时间限制正常,日志中没有“最大执行”错误和“内存限制”错误您没有检查停止===1。此外,如果您在
if($stop)
中所做的操作,也可以使用“break;”。你到底是如何运行这个脚本的?PHPCLI?阿帕奇?这整件事听起来更像是一个目的问题。PHP不是为这样的东西设计的。您应该切换到一些不同的东西,比如,我不知道,至少是bash脚本,或者更接近系统的东西,比如C,来创建这样一个deamon。无论哪种方式:我想不出任何不能由每分钟都在运行的cronjob来处理的事情。这个答案毫无根据。甚至没有丝毫证据支持这样的论点。此外,这是一个非常糟糕的想法,因为这样每个脚本的执行都没有时间限制,这可能会导致性能问题和服务器崩溃。
P:\developer\xampp\htdocs\testmysql>php Q22710846.php
press ctrl-c to end the task as it will forever!

The time now is, beep, beep, beep : 2014-04-02 11:19:03
waiting for : 8 seconds
The time now is, beep, beep, beep : 2014-04-02 11:19:11
waiting for : 7 seconds
The time now is, beep, beep, beep : 2014-04-02 11:19:18
waiting for : 6 seconds
The time now is, beep, beep, beep : 2014-04-02 11:19:24
waiting for : 6 seconds
The time now is, beep, beep, beep : 2014-04-02 11:19:30
waiting for : 5 seconds
The time now is, beep, beep, beep : 2014-04-02 11:19:35
waiting for : 8 seconds
The time now is, beep, beep, beep : 2014-04-02 11:19:43
waiting for : 8 seconds
The time now is, beep, beep, beep : 2014-04-02 11:19:51
waiting for : 2 seconds
The time now is, beep, beep, beep : 2014-04-02 11:19:53
waiting for : 8 seconds
The time now is, beep, beep, beep : 2014-04-02 11:20:01
waiting for : 1 seconds
The time now is, beep, beep, beep : 2014-04-02 11:20:02
waiting for : 3 seconds
The time now is, beep, beep, beep : 2014-04-02 11:20:05
waiting for : 7 seconds
The time now is, beep, beep, beep : 2014-04-02 11:20:12
waiting for : 9 seconds
The time now is, beep, beep, beep : 2014-04-02 11:20:21
waiting for : 9 seconds
The time now is, beep, beep, beep : 2014-04-02 11:20:30
waiting for : 8 seconds
The time now is, beep, beep, beep : 2014-04-02 11:20:38
waiting for : 1 seconds
^C
P:\developer\xampp\htdocs\testmysql>