我正在運行一個crawler程序,使用cron作業每小時執行一次程序。當所有東西都如預期的那樣,腳本自動退出。但是,由於某些原因,有時會陷入無限循環。它變得更糟,因爲我使用鎖定文件來避免重複運行,當爬蟲卡住它永遠不會再次運行,直到它手動殺死它(ps aux - > kill)在給定時間後自動終止Linux進程/ php腳本
如何確保腳本在幾小時後會發生什麼?
我應該在php代碼中添加一行嗎?直接在Linux中這樣做會不會更健壯?
到目前爲止,我的最佳想法是用一個必要的命令創建一個小批處理文件,然後用cron而不是直接調用該批處理文件。
我說得對嗎,命令應該是什麼?
感謝
編輯:我發現迄今最好的是:http://www.linuxquestions.org/questions/linux-general-1/how-to-kill-the-process-after-specific-time-624453
bash的是太長了,我希望的是更聰明,更短的解決方案。
乾杯
我會添加一些日誌代碼來找出無限循環問題。從長遠來看,這可能會更好。 – will
顯然這是最好的解決方案。儘管如此,鑑於我正在爬取很多網站,並且他們一直在變化,我需要找到解決方案來解決我的問題。 –
您可以添加計時器,以便您每個網站最多花費x秒。我會通過爲每個網站產生一個新線程來做到這一點,然後在計時器過去後將其殺死。 – will