2017-02-07 73 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

僅編碼答案可能會提供問題的答案,但解釋有助於理解您已更改的內容以及解決問題的原因。 –