2012-03-30 170 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

您可以创建一个能够运行该脚本