是否有可能在每2小时后重新启动此脚本?

时间:2014-11-15 15:53:51

标签: python proxy

我目前有这个脚本

import os
import time


os.system("killall -9 chromium-browser");


from config import *
with open(PROXIES_FILE) as f: proxies=f.read().split('\n')
proxies=[proxy.strip() for proxy in proxies if proxy.strip()]
for i in range(NUM):
    if len(proxies)<=i: break
    os.system('nohup chromium-browser --proxy-server="http://{proxy}" --disable-popup-blocking -new-window --user-data-dir=~/tmp/f{i} {url}&'.format(url=URL, i=i, proxy=proxies[i]))
    time.sleep(5)
print('%s browsers opened successfully!'%(i+1))

是否可以编写脚本,它会在每2小时后自动重启?

2 个答案:

答案 0 :(得分:1)

如果你在linux下,只需使用cron

“Cron是一个系统守护进程,用于在指定时间执行所需任务(在后台)。”

它是迄今为止最常用的工具

答案 1 :(得分:0)

将整个代码放在一个函数中,每隔2小时调用一次该函数,然后通过将其转换为守护进程在后台运行该脚本。此外,为确保函数在大约2小时后执行,您需要返回函数进入休眠状态的总秒数(要获得函数中花费的总秒数,您可以在函数中添加行t = time.time()函数的开始,然后在最后返回time.time() - t)。

import os
import time
from config import *

def func():

    os.system("killall -9 chromium-browser");
    with open(PROXIES_FILE) as f: proxies=f.read().split('\n')
    proxies=[proxy.strip() for proxy in proxies if proxy.strip()]
    seconds_slept = 0
    for i in range(NUM):
        if len(proxies)<=i: break
        os.system('nohup chromium-browser --proxy-server="http://{proxy}" --disable-popup-blocking -new-window --user-data-dir=~/tmp/f{i} {url}&'.format(url=URL, i=i, proxy=proxies[i]))
        time.sleep(5)
        seconds_slept += 5
    print('%s browsers opened successfully!'%(i+1))
    return seconds_slept

while True:
    time.sleep(2*60*60 - func())

现在,您可以使用此answer中的解决方案将此脚本作为守护程序运行。