İçeriğe geç

Windows'ta bir Python betiğini arka planda çalışır tutun

Konsol penceresinden çalıştırılan bir Python betiği, o pencereyi kapattığınızda durur. Olağan Windows çözümleri pythonw.exe (konsol penceresiz aynı yorumlayıcı; çıktı hiçbir yere gitmez), betiği ayrık başlatmak için Start-Process pythonw -ArgumentList worker.py ya da oturum açılışında veya bir zamanlayıcıyla çalışması gereken şeyler için zamanlanmış bir görevdir. Hepsinde, kaldırmak istediğinizde süreci Görev Yöneticisi’nde bulmak size kalır.

Moonpool komutu kendi terminal sekmesinde çalıştırır; böylece kendi konsol pencereniz olmadan çıktıyı ve bir Durdur düğmesini elinizde tutarsınız. Siz durdurana kadar çalışan bir betik için cli türünde bir uygulama kullanın. -u, Python’un çıktıyı hemen boşaltmasını sağlar; böylece sekme çıktıyı canlı gösterir:

apps.json
{
"id": "worker",
"name": "Queue worker",
"group": "Scripts",
"type": "cli",
"cwd": "C:\\code\\worker",
"command": ".venv\\Scripts\\python.exe -u worker.py"
}

Başlatın ve çıktısını izlemek için uygulamanın adına tıklayın. Bir cli uygulaması komutu çalıştığı sürece Çalışıyor sayılır; betik bittiğinde griye döner ve sekmede [process exited] kalır. Durdur, betiği ve başlattığı her şeyi sonlandırır. Sanal ortamın python.exe dosyasını yoluyla kullanmak, etkinleştirme adımına gerek bırakmaz.

Betik HTTP sunuyorsa (Flask, FastAPI, python -m http.server), Çalışıyor durumu bağlantı noktasını izlesin diye onu bir web uygulaması yapın:

apps.json
{
"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" }
}

Moonpool, şu kaynaktan ücretsiz bir yazılımdır: FasterDB