我有一臺運行IIS和SQL Server 2012的Windows 2012 Server。Windows服務器查殺長時間運行的PHP進程
我試圖從命令提示符運行PHP腳本。該腳本需要大約1小時才能運行。如果我像這樣直接從命令行運行它 - c:\ PHP> php.exe「D:\ Web \ phpScript.php」它運行良好。再次運行大約需要1個小時,但它完成很好。
的事情是我需要從另一個PHP頁面運行它。所以這段代碼 - exec('start c:\ php \ php.exe「D:\ Web \ phpScript.php」');在PHP中運行腳本。當我從PHP運行它時,它運行的時間大約爲30分鐘左右,但由於某種原因,Windows在30分鐘後最終終止了進程。
我一直在看在Windows任務管理器並不能看到在路上時,我直接運行它從命令提示符或當我使用PHP來運行該命令的任何差異的過程中運行比較。它們都顯示爲後臺進程,並且在任務管理器中看起來完全相同,但出於某種原因,Windows正在從PHP中運行並且不是從命令提示符直接運行的那個進程。
我都甚至試圖運行PHP的一個實時想也許如果它有更高的優先級也不會被殺,但沒有幫助。
我真的堅持了這一點。
任何幫助將是偉大的。
謝謝!
使用進程管理器,而不是任務管理器。它還會顯示調用二進制文件的父進程。如果它在父進程空間內運行,則父進程可能會在30分鐘後注意並終止,而從CLI運行它時則不會在意。 – hakre 2013-04-07 18:49:07
是的,你是對的。它運行在原來的php-cgi.exe中,它啓動了它。所以它看起來像PHP正在殺死它。我在PHP頁面上玩過time_limit,但我認爲這不會發揮作用。任何其他的想法如何讓PHP停止殺死它? – Sequenzia 2013-04-07 19:24:04
它可能是您的網絡服務器的設置。你使用哪個網絡服務器?哪個服務器API? – hakre 2013-04-07 19:29:06