2014-01-12 32 views
2

我有一個從MediaTemple DV 4.0。Apache通知捕獲SIGTERM,關閉php循環腳本

當我運行一個php文件腳本時,我得到了一個「500內部服務器錯誤」,它需要循環超過5000次。

該代碼似乎是因爲當我用200時間循環執行時,結果被打印。

我 「max_input_time設置」, 「的max_execution_time」, 「default_socket_timeout」 和其他所有的PHP參數都沒有問題(我想,所有被設定在9000和memory_limit的是-1)

我得到這個:

[Sat Jan 11 19:25:22 2014] [notice] caught SIGTERM, shutting down 

這是因爲Apache重啓。 我的問題是:如何 我能環比我的腳本5000次以上不崩潰我的系統;-)

謝謝

+0

「DV 4.0」它是開放式VZ服務器嗎?檢查「cat/proc/user_beancounters」是否有資源限制。 –

回答

6

你的問題是如何循環5000次以上。

循環5000或500000000次不是問題。你在其他地方有問題。

SIGTERM來重新啓動Apache(如果它是建立在init進程自動重啓):http://httpd.apache.org/docs/2.2/stopping.html

您所看到的日誌條目應該是有,因爲SIGTERM是用於這一目的。也許,Apache不會崩潰,但是你的數據有問題或者執行時間結束。

它可能是一個自定義PHP模塊或代碼。在出現故障時查看apache訪問/錯誤日誌。不要忘記打開錯誤日誌記錄。它可以幫助你識別出現了什麼問題。打開了嗎?如果在DEV模式下總是發出錯誤報告!

如果它確實崩潰,甚至不提供靜態內容,那麼這聽起來像某種線程/連接耗盡問題。但是,看起來你的代碼有問題,你可以抑制錯誤。

如果您確定自己的一方/代碼沒有問題(如果它在另一個系統上運行),則可能需要重新安裝apache和php,它會解決存在任何損壞的文件或者將其錯誤配置的問題。