簡體   English   中英

是否可以編碼為每2小時重新啟動一次該腳本?

[英]is it possible to codein that after every 2 hours this script restarts?

我目前有這個腳本

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小時重新啟動一次?

如果您使用的是Linux,請使用cron

“ Cron是一個系統守護進程,用於在指定的時間(在后台)執行所需的任務。”

這是迄今為止最常用的工具

將整個代碼放入一個函數中,每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())

現在,您可以使用此答案中的解決方案將此腳本作為守護程序運行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM