Maison >développement back-end >Tutoriel Python >Comment détacher les processus d'arrière-plan à l'aide du module « subprocess » de Python ?
Comment démarrer un processus d'arrière-plan détaché en Python
Lors de la conversion d'un script shell en Python, vous pouvez rencontrer le besoin de démarrer des processus dans l'arrière-plan qui persiste même une fois le script terminé. Pour y parvenir, vous pouvez utiliser le module subprocess de Python.
Utilisation de subprocess.Popen
La fonction subprocess.Popen vous permet de générer un nouveau processus. Pour démarrer un processus en arrière-plan et le détacher du processus parent, transmettez les arguments shell=True et stderr=subprocess.STDOUT à subprocess.Popen :
import subprocess subprocess.Popen(["command", "arg1", "arg2"], shell=True, stderr=subprocess.STDOUT)
Utiliser la fourchette() Fonction
Une autre option consiste à utiliser la fonction fork() pour créer un processus enfant qui s'exécute en même temps que le processus parent. Cependant, cette méthode est plus avancée et nécessite une gestion minutieuse des signaux et des ressources.
Éviter le blocage
Pour empêcher le processus parent de se bloquer en attendant que le processus enfant complet, évitez d'appeler la méthode communicate() sur l'objet processus renvoyé par Popen.
Exemple
Pour démarrer un processus qui exécute sleep 30 en arrière-plan, utilisez le suivant :
import subprocess subprocess.Popen(["sleep", "30"])
Clarification
Dans ce contexte, « arrière-plan » fait référence au démarrage d'un processus qui s'exécute indépendamment du processus parent, qu'il soit démarré ou non dans un fond de coquillage.
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!