我運行python
程序CentOS VPS服務器。我在過去幾個月運行這個程序&我從一開始就面臨這個問題。Python多處理程序中間死亡
我通常從crontab運行這個python程序。該計劃每天都會按順序進行以下工作。
- 連接到
MySQL
數據庫&更新一些具體的信息。 - 使用
multiprocessing
劃分爲8-10個python實例。 - 每個實例使用
Xvfb
運行虛擬顯示(這是運行firefox所必需的)。 - 每個實例運行單獨的Firefox瀏覽器。
- 每個實例訪問一個網站以檢查更新(使用
selenium
)以獲取某些數據,如果它發生任何更改,則會更新到數據庫。 - 檢查每個實例關閉
firefox
後所有這些過程通常需要60分鐘到90分鐘,如果它運行正常。但問題是它每次都運行不正常。它有時會在中途死亡。此外,我從未發現任何具體原因,爲什麼這些程序死亡,我該怎麼做。當我檢查top
或ps
,我發現python
程序不存在,firefox
& Xvfb
仍然存在,等待python命令就像一個傻瓜。
由於過載或其他原因可能導致系統死亡。有時重新啓動系統有幫助。但是,我知道這不是一個好的解決方案。這就是爲什麼我試圖運行該程序,降低最低水平的良好值。但是,程序可能無法運行負值niceness
值,所以仍然存在相同的問題。
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
0 S 500 12673 12655 0 80 0 - 54957 wait ? 00:00:00 python
1 S 500 12683 12673 0 80 0 - 62766 sk_wai ? 00:00:18 python
1 S 500 12704 12673 0 80 0 - 59295 sk_wai ? 00:00:17 python
1 S 500 12816 12673 0 80 0 - 59230 sk_wai ? 00:00:16 python
1 S 500 12898 12673 0 80 0 - 59400 sk_wai ? 00:00:16 python
1 S 500 12988 12673 0 80 0 - 59491 sk_wai ? 00:00:17 python
1 S 500 13072 12673 0 80 0 - 59151 sk_wai ? 00:00:17 python
同樣,我有我的的Windows 8桌面上運行這個程序,它運行良好高達26個實例(我從來沒有嘗試過多種:))。因爲它在一次加載頁面時運行的很多實例變得緩慢。這就是爲什麼我試圖通過拆分作業在3 VPS服務器上運行此程序的原因。
而且,我跑使用python
,firefox
,selenium
,Xvfb
單過程中的另一個程序,並運行良好10-12小時,沒有任何打嗝。此外,這個程序與第一個程序幾乎完全相同,但唯一不同的是它只運行單個進程。而且,它不會像第一個那樣產生麻煩。
有什麼辦法可以確認每次都能正常運行程序嗎?