Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/249.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:如何编写显示在';ps&x27;指挥部?_Php_Sleep_Ps - Fatal编程技术网

PHP:如何编写显示在';ps&x27;指挥部?

PHP:如何编写显示在';ps&x27;指挥部?,php,sleep,ps,Php,Sleep,Ps,如果我使用sleep语句编写Bash shell程序,我可以执行以下操作来检查其状态: ps aux | grep sleep 如果我有一个睡眠发生了很长一段时间,例如10分钟在PHP中尝试看看网络连接现在是否可用,我无法确定程序是否有问题或它是否正确执行睡眠功能 我想的一种方法是,将带有时间戳的睡眠状态写入日志文件。但我想知道是否有可能和实际的能力来写这个状态,这样它就会出现在执行“ps aux | grep sleep”的时候,这个正在运行的php编程正在休眠 还是有更好的方法和途径?谢谢

如果我使用sleep语句编写Bash shell程序,我可以执行以下操作来检查其状态:

ps aux | grep sleep
如果我有一个睡眠发生了很长一段时间,例如10分钟在PHP中尝试看看网络连接现在是否可用,我无法确定程序是否有问题或它是否正确执行睡眠功能

我想的一种方法是,将带有时间戳的睡眠状态写入日志文件。但我想知道是否有可能和实际的能力来写这个状态,这样它就会出现在执行“ps aux | grep sleep”的时候,这个正在运行的php编程正在休眠


还是有更好的方法和途径?谢谢

可能创建一个sleep-php.sh,然后用bash命令执行它,我认为它是
源sleep-php.sh
。然后,您可以grep for sleep-php.sh,而不必冒险将其与碰巧运行的另一个sleep命令混淆


您甚至可以进一步动态创建“sleep php-$id.sh”,这样您就可以在sleep中包含更多信息,这里是am id示例。

IMHO,最好的方法不是将您的跟踪器/记录器放在较低级别的操作系统中,而是放在php本身中

我建议编写一个PHP循环,尝试次数有限,两次尝试之间的等待时间更短,这样就可以记录每个循环,以及每个循环的网络连接轮询结果。 一旦获得了连接网络,就断开环路。 如果循环完成且未获得网络访问,则发出相关消息/业务操作

define("MAX_ATTEMPT_COUNT", 10);
define("WAITING_TIME", 60);

$NetworkAccess = false;

$fd = fopen("netpoll.log", 'a');
if (!$fd) die("I thought I could open netpoll.log but I can't.");

for($i=1; $i<=MAX_ATTEMPT_COUNT; $i++) {
    fwrite($fd, "Entering loop #" . $i);

    $NetworkAccess |= pollNetwork(); // can be |= or simply =

    if ($NetworkAccess) {
        fwrite($fd, "network access acquired, exiting loop.");
        break;
    }

    fwrite($fd, "No cigar, I'll try again in " . WAITING_TIME . " seconds.");
    sleep(WAITING_TIME);
} 

if(!$NetworkAccess) {
    fwrite($fd, "No network access after " . MAX_ATTEMPT_COUNT*WAITING_TIME . " seconds, giving up.");
}

fclose($fd);
定义(“最大尝试次数”,10);
定义(“等待时间”,60);
$NetworkAccess=false;
$fd=fopen(“netpoll.log”,“a”);
如果(!$fd)死了(“我以为我可以打开netpoll.log,但我不能。”);

对于($i=1;$i),这个神秘的php脚本应该在做什么?