2017-02-07 31 views
0

我正在PHP上运行一些php exec命令 - CLI 其中一些exec()花费的时间太长。如何在Windows上设置PHP exec()命令的超时?

所以我的想法是建立在EXEC()

我发现了一些解决方案,为Linux 60秒计算的逾,但我无法适应他们的窗户(管/流程...)

任何想法如何触发窗口上的超时php php cli exec()命令?

+0

您是否尝试过使用内置超时功能? http://stackoverflow.com/questions/6039224/are-php-scripts-run-using-the-php-command-affected-by-the-timeout-limit – Goufalite

回答

-1

在CLI尝试超时命令:

$time = 60; 
$command = 'wget http://google.com'; 
exec(sprintf("C:\Windows\System32\timeout.exe /t %d %s", $time, $command), $output); 
+0

我试过在Windows上(用sleep.bat睡30秒)并把$时间= 10:不好! 超时在30秒后打印,而不是在10秒后打印! 和我在Windows上使用gitBash命令,所以我有超时可用。 – yarek

+0

我编辑了答案 –

+0

timeout:未知选项-t 我想你是指-k,hower该帖子是关于Windows,而不是Linux – yarek

0
$intExecutionTimeout = 60; 
$strCommand = 'wget http://google.com'; 

$strCommand = 'timeout --signal=15 --kill-after=' . ($intExecutionTimeout* 2) . 's ' . $intExecutionTimeout . 's ' . $strCommand . ' &'; 

exec($strCommand, $arrstrResponse); 
+0

仅编码答案可能会提供问题的答案,但解释有助于理解您已更改的内容以及解决问题的原因。 –