Windows Dienst beenden

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
pythonstarter
User
Beiträge: 53
Registriert: Donnerstag 15. April 2010, 20:34

Hallo liebe Forenmitglieder,
ich möchte gerne mit einem Pythonscript einen Windows-Service beenden, um dann mehrere Datenbankbefehle auszuführen. Im Anschluss möchte ich den Dienst wieder starten.
Gibt es für das Beenden und Starten des Dienstes ein Modul (z.B. os. oder subprocess), das ich nutzen kann?

Vielen Dank im Voraus
Sirius3
User
Beiträge: 18274
Registriert: Sonntag 21. Oktober 2012, 17:20

Das Modul ist bei pywin32 dabei:
https://www.markjour.com/docs/pywin32-d ... rvice.html

Mit der Anleitung von in der Microsoft-Dokumentation (https://learn.microsoft.com/en-us/windo ... -a-service) sollte das einfach umsetzbar sein.
pythonstarter
User
Beiträge: 53
Registriert: Donnerstag 15. April 2010, 20:34

Hallo Sirius,
vielen Dank für Deine Antwort.
Habe es aber dann doch anders gelöst:

Code: Alles auswählen

import subprocess

# Dienst starten
start_command = 'net start <service_name>'
subprocess.run(start_command, shell=True)

# Dienst beenden
stop_command = 'net stop <service_name>'
subprocess.run(stop_command, shell=True)
Benutzeravatar
__blackjack__
User
Beiträge: 14056
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@pythonstarter: Da jetzt bitte das ``shell=True`` rausnehmen und die Kommandos als Liste übergeben und ein ``check=True`` dazu packen.
“Vir, intelligence has nothing to do with politics!” — Londo Mollari
pythonstarter
User
Beiträge: 53
Registriert: Donnerstag 15. April 2010, 20:34

@ __blackjack__
Wenn Du mir noch erklären könntest, warum ich das tun soll...
Benutzeravatar
__blackjack__
User
Beiträge: 14056
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@pythonstarter: Weil man im Moment die gleichen Probleme hat die `os.system()` hat, weswegen man `subprocess` nehmen sollte. Bezüglich `check` schau in die Dokumentation was das bewirkt.
“Vir, intelligence has nothing to do with politics!” — Londo Mollari
Benutzeravatar
sparrow
User
Beiträge: 4538
Registriert: Freitag 17. April 2009, 10:28

@pythonstarter: Und das Kommandi mit einer Liste von einer Liste, statt einer einzigen Zeichenkette, damit entsprechend escaped werden kann.
Antworten