我运行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小时,没有任何打嗝。此外,这个程序与第一个程序几乎完全相同,但唯一不同的是它只运行单个进程。而且,它不会像第一个那样产生麻烦。
有什么办法可以确认每次都能正常运行程序吗?