Ein Python-Skript unter Windows im Hintergrund weiterlaufen lassen
Ein Python-Skript, das aus einem Konsolenfenster gestartet wurde, endet, wenn Sie das Fenster
schließen. Die üblichen Windows-Lösungen sind pythonw.exe (derselbe Interpreter ohne
Konsolenfenster, sodass die Ausgabe ins Leere geht), Start-Process pythonw -ArgumentList worker.py
zum losgelösten Starten oder eine geplante Aufgabe für etwas, das beim Login oder nach einem
Zeitplan laufen soll. Bei jeder müssen Sie den Prozess im Task-Manager suchen, wenn Sie ihn
loswerden wollen.
Der Moonpool-Weg
Abschnitt betitelt „Der Moonpool-Weg“Moonpool führt den Befehl in einem eigenen Terminal-Tab aus, sodass Sie die Ausgabe und eine
Stopp-Schaltfläche behalten, ohne ein eigenes Konsolenfenster. Für ein Skript, das läuft, bis
Sie es stoppen, verwenden Sie eine cli-App. -u lässt Python die Ausgabe sofort leeren,
sodass der Tab sie live zeigt:
{ "id": "worker", "name": "Queue worker", "group": "Scripts", "type": "cli", "cwd": "C:\\code\\worker", "command": ".venv\\Scripts\\python.exe -u worker.py"}Starten Sie sie und klicken Sie auf den Namen der App, um ihre Ausgabe zu verfolgen. Eine
cli-App gilt als „läuft“, solange ihr Befehl läuft, und wird grau, wenn das Skript endet,
wobei [process exited] im Tab stehen bleibt. Stoppen beendet das Skript und alles, was
es gestartet hat. Wenn Sie die python.exe der virtuellen Umgebung per Pfad verwenden,
braucht es keinen Aktivierungsschritt.
Wenn das Skript HTTP bedient (Flask, FastAPI, python -m http.server), machen Sie es zu
einer web-App, damit „läuft“ seinem Port folgt:
{ "id": "docs-api", "name": "Docs API", "group": "Scripts", "type": "web", "cwd": "C:\\code\\docs-api", "command": ".venv\\Scripts\\python.exe -u app.py", "port": 8091, "url": "http://127.0.0.1:8091", "env": { "PORT": "8091" }}Grenzen
Abschnitt betitelt „Grenzen“- Lassen Sie Moonpool laufen. Das Schließen seines Fensters beendet es standardmäßig, und unter Windows stoppt das Beenden jede App, die es gestartet hat. Schalten Sie Beim Schließen in den Infobereich ein, um das Fenster stattdessen auszublenden; siehe Tray, Schließen und Minimieren.
- Moonpool startet ein abgestürztes Skript nicht neu und startet es auch nicht von selbst beim Windows-Login. Siehe Ein Skript oder einen Entwicklungsserver automatisch beim Windows-Login starten.
- Vermeiden Sie verschachtelte doppelte Anführungszeichen in
command: Der Wrappercmd /cverstümmelt sie.
Siehe auch
Abschnitt betitelt „Siehe auch“- App-Typen: wie
cli- undweb-Apps verfolgt werden. - Stoppen und Neustarten
- Beispiele
- Protokolle: wo die Sitzungsausgabe aufbewahrt wird.
Moonpool ist freie Software von FasterDB