Heim > Backend-Entwicklung > Python-Tutorial > Wie kann ich Prozesse in Pythons „Unterprozess' sicher weiterleiten, ohne „shell=True' zu verwenden?

Wie kann ich Prozesse in Pythons „Unterprozess' sicher weiterleiten, ohne „shell=True' zu verwenden?

Patricia Arquette
Freigeben: 2024-12-23 00:43:44
Original
886 Leute haben es durchsucht

How Can I Safely Pipe Processes in Python's `subprocess` Without Using `shell=True`?

Piping mit Unterprozess

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.

Alternative Piping-Lösung

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)
Nach dem Login kopieren

Hier stellt ps den Prozess dar, der ps -A ausführt, und grep ist der Prozess, der grep 'Prozessname' ausführt.

Vereinfachter Ansatz für Ihren Fall

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage