2016-12-29 47 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在多個故障安全服務器上處理代碼