我正在運行第三方腳本,通過使用我編寫的包裝類來調用shell_exec()
和管道,然後使用php代碼稍後解析。我應該提到這是行得通的,但我試圖增強功能,遇到了我沒有想到的用例。shell_exec()timeout management&exec()
如何最好的管理shell_exec()的超時?我正在考慮將其包裝在try() catch()
中,但我不確定如何最好地處理時間組件。
我一直在這裏與shell_exec()
和exec()
讀了幾個問題,似乎通過傳遞輸出PARAMS到exec()
你可以得到回報的,但這依賴於腳本返回狀態完成。另外在我的小測試頁面中,我似乎無法讓它返回任何輸出!
我想過的另一個選擇是使用模式對話框,使用ajax樣式的微調器,同時使用腳本,並在JavaScript中設置手動超時。然後給用戶一個關於失敗/超時和結束的模型對話框消息。
這個用例是否有任何可接受的方法?
我的小測試,由以下部分組成,
public $e_return = array();
public $e_status = '';
// Paths are absolute from/
public function execCheck($domain){
exec($this->ssl_check_path." -s ".$domain." -p 443 > ".$this->folder.$this->filename." 2>&1 &", &$this->e_return, &$this->e_status);
}
// Returns
Array
(
)
0
使用這個問題作爲參考, Can't execute PHP script using PHP exec
http://www.php.net/manual/en/function.exec.php
感謝我給一個嘗試今天看我怎麼去:) – 2010-08-05 07:55:03
我也發現了這個問題,非常方便,http://stackoverflow.com/questions/2603912/php-set-timeout-for-script-with-system-call-set-time-limit-not-working – 2010-08-05 13:18:07