Ich suche nach einer Möglichkeit, mit einem Python-Skript zu überprüfen, wenn ein Dienst installiert ist. Zum Beispiel, wenn ich als ein SSH-Server überprüfen möge in installiert/Laufen/unten in der Befehlszeile, habe ich:Wissen, ob ein Dienst installiert ist
service sshd status
Wenn der Dienst nicht installiert ist, habe ich eine Meldung wie diese:
sshd.service
Loaded: not-found (Reason: No such file or directory)
Active: inactive (dead)
Also habe ich einen Unterprozess check_output verwendet, um diese drei Zeile zu bekommen, aber das Python-Skript funktioniert nicht. Ich habe shell = True verwendet, um die Ausgabe zu erhalten, aber es funktioniert nicht. Ist es die richtige Lösung zu finden, ob ein Service installiert ist oder eine andere Methode existiert und viel effizienter ist?
meine Python Es Skript ist:
import subprocess
from shlex import split
output = subprocess.check_output(split("service sshd status"), shell=True)
if "Loaded: not-found" in output:
print "SSH server not installed"
Die Probleme mit diesem Code ein subprocess.CalledProcessError ist: Befehl zurückgegeben Nicht-Null Exit-Status 1. Ich weiß, das ist, wenn eine Rückkehr Kommandozeile etwas, was nicht der Fall ist vorhanden, aber ich brauche das Ergebnis, wie ich den Befehl in einer Shell schreiben
Das Programm sagte mir: Befehl '[' Service ',' shd ',' Status ']' gab nicht-Null Ausgangsstatus 3. Es ist nicht die gleiche Zeile wie der Shell-Befehl und ich kann nicht wissen, ob der Dienst ist installiert oder nicht –
'shd' oder' sshd'? –
Fehler, sorry, es ist sshd in meinem Code –