2016-12-29 19 views
0

Ich habe ein Python-Skript, das auf Windows Server 2008 auf cmd-Linie läuft. Ich brauche keine Interaktion während des laufenden Skripts. Übrigens läuft das Skript ungefähr eine Woche lang. Also, wenn der Server meine Verbindung aus irgendeinem Grund trennt, stoppt mein Skript und ich muss immer wieder neu starten. Es ist ein großes Problem für mich und ich weiß nicht, wie ich dieses Problem lösen soll.Wie Python-Skript in Windows-Hintergrund ausführen?

Hier ist meine Frage.

Wie ein Python-Skript im Hintergrund auf Windows-Server ausführen sogar Benutzer vom Server trennen?

Vielen Dank im Voraus für Ihre Hilfe.

+0

Dies ist eine Frage über Daemon-Prozess, der im Hintergrund ausgeführt wird. Du solltest es googeln. –

+0

http://StackOverflow.com/Questions/7629813/is-there-windows-analog-to-supervisord – sau

Antwort

1

Sie können meine eigene Lösung verwenden, um es unter Windows zu tun: https://github.com/fomalhaut88/pydaemon. Sie müssen lediglich eine Klasse erstellen, die die Funktion in Ihrem Skript ausführt. Der Vorteil dieses Ansatzes ist, dass Sie viele andere Daemon-Prozesse hinzufügen und über pydaemon steuern können.

Wenn es zu schwer und zu kompliziert für Sie aussieht, können Sie Ihr Skript mit einer Endlos-Schleife, um wickeln Anhalten zu vermeiden, wenn es fehlschlägt:

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

es jetzt schon im Hintergrund können Sie folgenden Befehl verwenden:

start /MIN "" python yourscript.py 
0

Vielleicht möchten Sie Ihr laufendes Fenster verstecken?

Schreiben Sie ein VBS-Skript, um Ihr Python-Skript auszuführen. Erstellen Sie eine Datei mit dem Namen start.vbs

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

Dann können Sie einen Doppelklick auf start.vbs Ihr Skript Hintergrund laufen zu lassen.

+0

Irgendeine Idee, was VBS ich schreiben könnte, um das Skript zu beenden? –

0

versuchen Sie, eine AWS-Instanz hochzufahren und auf einem zuverlässigeren Server auszuführen. Oder Sie können in Hadoop schauen, um den Code über mehrere fehlersichere Server zu verarbeiten

Verwandte Themen