Maison >développement back-end >Tutoriel Python >Comment puis-je diriger en toute sécurité des processus dans le « sous-processus » de Python sans utiliser « shell=True » ?
Piping avec sous-processus implique l'utilisation du paramètre shell pour générer le processus avec un shell qui prend en charge la transmission de la sortie. Cependant, pour des raisons de sécurité, il n'est pas recommandé d'utiliser shell=True.
Pour canaliser les processus sans compter sur shell=True, créez des processus distincts pour chaque commande et connectez leurs flux d’entrée et de sortie. Par exemple :
ps = subprocess.Popen(('ps', '-A'), stdout=subprocess.PIPE) output = subprocess.check_output(('grep', 'process_name'), stdin=ps.stdout)
Ici, ps représente le processus exécutant ps -A et grep est le processus exécutant grep 'process_name'.
Dans votre scénario spécifique, au lieu d'utiliser des tuyaux, vous pouvez simplement appeler subprocess.check_output(('ps', '-A')) puis appliquer str.find sur la sortie renvoyée pour vérifier le processus souhaité.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!