Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich Prozesse in Pythons „Unterprozess' sicher weiterleiten, ohne „shell=True' zu verwenden?
Piping mit Unterprozess beinhaltet die Verwendung des Shell-Parameters, um den Prozess mit einer Shell zu erzeugen, die die Weiterleitung der Ausgabe unterstützt. Aus Sicherheitsgründen wird die Verwendung von „shell=True“ jedoch nicht empfohlen.
Um Prozesse weiterzuleiten, ohne sich auf „shell=True“ zu verlassen, erstellen Sie für jeden Befehl separate Prozesse und verbinden Sie diese Eingabe- und Ausgabeströme. Zum Beispiel:
ps = subprocess.Popen(('ps', '-A'), stdout=subprocess.PIPE) output = subprocess.check_output(('grep', 'process_name'), stdin=ps.stdout)
Hier stellt ps den Prozess dar, der ps -A ausführt, und grep ist der Prozess, der grep 'Prozessname' ausführt.
In Ihrem spezifischen Szenario können Sie anstelle der Verwendung von Pipes einfach subprocess.check_output(('ps', '-A')) aufrufen und dann str.find anwenden die zurückgegebene Ausgabe, um den gewünschten Prozess zu überprüfen.
Das obige ist der detaillierte Inhalt vonWie kann ich Prozesse in Pythons „Unterprozess' sicher weiterleiten, ohne „shell=True' zu verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!