2012-03-30 3 views
0

У меня есть скрипт python, который загружает N количество изображений с веб-сайта. Я запускаю его на веб-сервере ubuntu 10.04. Например download.py загружает 10000 изображений с веб-сайта, распечатывает файл о произошедших ошибках. После загрузки N изображений он выйдет. Обычно на локальной машине я бегу это нравится:Python Script On Webserver

sudo python download.py 

Как я могу запустить его на веб-сервере, чтобы быть всегда работает, и когда он закончил он должен остановиться? Я запускаю его вручную, когда мне нужно (задания cron не нужны). цикл в скрипте:

for i in range(1, N): 
    #do download 

Если скрипт останавливается некоторыми ошибками, мне нужно будет снова работать с самого начала, в то время как я не сохраняете никаких данных для запуска от остановки месте.

ответ

0

В моей ситуации я могу запустить его как: sudo nohup python download.py

0

На вашем сервере вы можете использовать цикл событий, предоставляемый Twisted, и запускать его с регулярными интервалами.

from twisted.internet import task 
from twisted.internet import reactor 

timeout = 60.0 

def downloadlinks(): 
    # Have a logic to start download. 
    # One previous download is over. 
    if num_images_downloaded < 1000: 
     pass # previous download still in progress 
    else: 
     start_download() 


    #do work here 
    pass 

l = task.LoopingCall(doWork) 
l.start(timeout) # call every sixty seconds 

reactor.run() 
0

Вы можете создать службу демон питона, который будет запускать скрипт