2016-12-29 49 views
0

我有一个运行在Windows Server 2008上的cmd行的python脚本。在脚本运行期间,我不需要任何交互。顺便说一句,脚本在大约一周的时间内运行。所以如果服务器由于某种原因断开我的连接,我的脚本就会停下来,我必须一遍又一遍地重新开始。这对我来说是很大的麻烦,我不知道如何解决这个问题。如何在Windows后台运行python脚本?

这是我的问题。

如何在windows服务器的后台运行python脚本,甚至用户从服务器断开连接?

在此先感谢您的帮助。

+0

这是一个关于守护进程的问题,它在后台运行。你应该谷歌它。 –

+0

http://stackoverflow.com/questions/7629813/is-there-windows-analog-to-supervisord – sau

回答

1

您可以使用我自己的解决方案在Windows下执行此操作:https://github.com/fomalhaut88/pydaemon。所有你需要的是创建一个类来运行脚本中的函数。这种方法的优点是可以添加许多其他守护进程并通过pydaemon来控制它们。

如果它看起来过于繁复适合你,你可以用一个无限循环包裹你的脚本,以避免停止,如果它失败:

# yourscript.py 
while True: 
    try: 
     ... # doing your stuff 
    except: 
     pass 

在后台,你可以使用下面的命令来启动它:

start /MIN "" python yourscript.py 
0

也许你想隐藏你的窗口?

编写一个vbs脚本来运行你的python脚本。 创建一个文件名为start.vbs

Set ws = CreateObject("Wscript.Shell") 
    ws.run "cmd /c python your_python_script.py",0 

然后,你可以双击start.vbs运行脚本底色。

+0

任何想法什么VBS我可以写来终止脚本? –

0

尝试启动AWS实例并在更可靠的服务器上运行它。或者你可以看看hadoop在多个故障安全服务器上处理代码