【问题标题】:Sleep incorrectly affecting calling PHP-script睡眠不正确影响调用 PHP 脚本
【发布时间】:2014-07-07 11:17:22
【问题描述】:

我试图将 script2.php 的执行延迟 10 秒,但不是整个 script1.php。当我在顶部的 script2.php 中放置一个 sleep(10) 时,不幸的是 script1 也被延迟,正如底部的输出所证明的那样。

<?php
{
    echo date("H:i:s");
    exec("nohup php script2.php $id $host '$status' '$nagios_host' &> /dev/null &");
    echo date("H:i:s");
    echo("nohup script2.php $id $host '$status' '$nagios_host' &> /dev/null &");
    echo date("H:i:s");
    echo $id." - ".$host." - ".$status." - ".$nagios_host."\n";
}       
?>  

这是script1.php的输出:

11:09:35
nohup: redirecting stderr to stdout
11:09:45
nohup php script2.php 1341234 blabla.com 'blabla alert => CRITICAL' 'nagios01.blabla.com' &> /dev/null &
11:09:45
1341234 - blabla.com - blabla alert => CRITICAL - nagios01.blabla.com       

【问题讨论】:

  • "> /dev/null 2>/dev/null &" 而不是 "&> /dev/null &" 似乎有效,不知道为什么......

标签: php call sleep


【解决方案1】:

我没有看到输出有任何问题,您将执行延迟 10 秒,然后得到结果。不要期望 script2.php 比第一个脚本执行得晚,因为 PHP 在继续程序之前会等待 exec 函数结束

也与此相关(并有相同的答案):How to execute shell commands synchronously in PHP

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-04-07
    • 1970-01-01
    • 2018-02-20
    • 1970-01-01
    • 1970-01-01
    • 2021-12-11
    • 1970-01-01
    相关资源
    最近更新 更多