PHP curl脚本没有关闭连接

时间:2014-10-19 12:15:52

标签: php curl

我的网站上有一个cron作业,它经常运行,下载文本文件的内容。一切正常,直到今天早上我从我的网络主机收到一封电子邮件,我用完了所有(已分配)的流程。他们把它缩小到这个文件并告诉我修正它的状态,因为它没有正确关闭。对这个php新手的任何帮助都是最受欢迎的。

#!/usr/bin/php

<?php
        // create curl resource
        $ch = curl_init();

        // set url
        curl_setopt($ch, CURLOPT_URL, "http://www.address.com/textfile.txt");

        //return the transfer as a string
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

        //$output contains the output string
        $output = curl_exec($ch);

        // We need to check whether the data is valid.
        // We check for the 'Client Error' string
        // inside the output data.  If it exists, we don't want
        // to overwrite the previous (good) data.

        if (strpos($output,'Client Error') !== false) {

            echo $output;
                //echo 'Client Error, no data.';

        }else{

            $outputFile = '/home/hostingacct/public_html/outputTextFile.txt';

            $fh = fopen($outputFile,'w') or die("can't open");
            fwrite($fh,$output);
            fclose($fh);
        }

        // close curl resource to free up system resources
        curl_close($ch);

?>

编辑:

添加了ps xauf结果 - vds-status.php是我正在使用的php文件。

ryan 11678  0.0  0.0 335380  6216 ?        Ss   Dec14   0:13 /usr/local/bin/php /home/ryan/etc/vds-status.php
ryan 11663  0.0  0.0 335640  6100 ?        Ss   Dec12   0:19 /usr/local/bin/php /home/ryan/etc/vds-status.php
ryan 11509  0.0  0.0 335380  6220 ?        Ss   Dec14   0:13 /usr/local/bin/php /home/ryan/etc/vds-status.php
ryan 11244  0.0  0.0 335640  6128 ?        Ss   Dec13   0:16 /usr/local/bin/php /home/ryan/etc/vds-status.php
ryan 11173  0.0  0.0 335640  6264 ?        Ss   Dec14   0:14 /usr/local/bin/php /home/ryan/etc/vds-status.php
ryan 10718  0.0  0.0 335380  6004 ?        Ss   Dec12   0:20 /usr/local/bin/php /home/ryan/etc/vds-status.php
ryan  9397  0.0  0.0 335380  6020 ?        Ss   Dec13   0:16 /usr/local/bin/php /home/ryan/etc/vds-status.php
ryan  9379  0.0  0.0 335380  6216 ?        Ss   Dec13   0:14 /usr/local/bin/php /home/ryan/etc/vds-status.php
ryan  9333  0.0  0.0 335640  6128 ?        Ss   Dec13   0:16 /usr/local/bin/php /home/ryan/etc/vds-status.php

当我之前发布我的问题时,我让我的webhost立即删除了所有进程,因为它阻止了我的网站。问题再次发生在2个月之后,进程仍在运行,等等。我按照Antoan运行ps xauf,结果在上面。

看起来这个问题在12日开始并且持续了两天。任何人都可以了解这可能发生的原因吗?这似乎发生在这些问题日午夜之后。这可能是因为服务器(通过cURL)无法访问 - 使用php脚本无法退出?谢谢大家。

1 个答案:

答案 0 :(得分:1)

这很可能是错误的假设 你有ssh访问这个主机?

如果是,请执行ps xuaf并查看哪些进程是真实的。

如果您在此处发布列表,我们将能够为您提供更多帮助。

更新

看起来像某种沟通问题。你能加点那些:

curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30); // Setting the amount of time (in seconds) before the request times out
curl_setopt($ch, CURLOPT_TIMEOUT, 60); // Setting the maximum amount of time for cURL to execute queries 

根据需要调整时间。