2017-02-07 4 views
0

Ich führe einige PHP-Exec-Befehle auf PHP - CLI Einige dieser exec() dauern zu lange.Wie ein Timeout für PHP Exec() Befehl unter Windows einrichten?

Also meine Idee ist eine 60 Sekunden Zeitüberschreitung auf dem exec zu setup()

fand ich einige Lösungen für Linux, aber ich konnte sie nicht auf Fenster anpassen (Rohr/Prozesse ...)

Irgendeine Idee, wie man ein Zeitlimit über Windows php cli exec() Befehl auslöst?

+0

Haben Sie versucht, die Timeout-Funktion in integrierten verwenden? http://stackoverflow.com/questions/6039224/are-php-scripts-run-using-the-php-command-affected-by-the-timeout-limit – Goufalite

Antwort

-1

versuchen Timeout Befehl in CLI:

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

Ich habe das auf Windows versucht (mit einem sleep.bat das schläft für 30 Sekunden) und setze $ time = 10: NOT GOOD! Timeout wird nach 30 Sekunden und nicht nach 10 Sekunden gedruckt! und ich benutze gitBash Befehl in Windows, so dass ich Timeout verfügbar habe. – yarek

+0

Ich habe die Antwort bearbeitet –

+0

Timeout: unbekannte Option - t Ich denke, Sie beziehen sich auf -k, hower der Beitrag ist über Windows, nicht 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

Code-Only-Antworten können die Antwort auf das Problem liefern, aber eine Erklärung hilft viel dabei, zu verstehen, was Sie geändert haben und warum es das Problem löst. –

Verwandte Themen