2012-03-30 152 views
0

我有一個python腳本,它從網站下載N張圖片。我在webserver ubuntu 10.04上運行它。例如download.py從網站上下載10000張圖像,打印到文件中以查看發生的錯誤。下載N張圖像後,退出。通常在本地機器上運行我喜歡它:網絡服務器上的Python腳本

sudo python download.py 

我怎樣才能在網絡服務器上運行它始終在運行,當它完成了它應該停止?我需要時手動運行它(cron作業不是必需的)。 for循環中的腳本:

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

如果腳本是由一些錯誤,停止,我需要從開始再次運行,而我沒有保存任何數據從停止的地方運行。

回答

0

在我的情況下,我可以像這樣運行它:sudo nohup python download.py

0

在您的服務器上,您可以使用Twisted提供的Event循環並使其定期運行。

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

您可以創建一個能夠運行該腳本