2014-11-15 7 views
0

나는 현재이 스크립트이 스크립트를 다시 시작하는 2 시간마다 코드를 작성할 수 있습니까?

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 시간 후에 자체를 다시 시작한다는 점에서 스크립트로 수 있나요?

+0

왜 당신이 time.sleep (5) 횟수를 카운트하지 않고, 14,400 패스 후에 종료합니까? – user590028

+0

어떻게 그럴 수 있습니까? –

+0

이것은 도움이 될 수도 있습니다 http://stackoverflow.com/questions/26942801/how-do-you-create-a-timer-in-python-2-7/26943075#26943075 그리고 더 많은 해결책은 화면 https ://help.ubuntu.com/community/Screen –

답변

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에서 솔루션을 사용하여 데몬 등이 스크립트를 실행할 수 있습니다.

1

당신이 리눅스에서하면 바로 사용 cron

"크론은 지정된 시간에 (백그라운드에서) 원하는 작업을 실행하는 데 사용하는 시스템 데몬입니다."그것은이에 대한 지금까지 가장 일반적인 도구입니다

관련 문제