Commencer un processus séparé
Je veux un script pour démarrer un nouveau processus, tels que le nouveau processus continue de fonctionner après la première script se termine. Je m'attendais que je pourrais utiliser multiprocessing.Process
pour démarrer un nouveau processus, et de définir daemon=True
de sorte que le script principal peut sortir tout le processus créé continue de courir.
Mais il semble que le deuxième processus est silencieusement mis fin lorsque le script se termine. Est-ce un comportement normal, ou suis-je en train de faire quelque chose de mal?
source d'informationauteur JacquesB
Vous devez vous connecter pour publier un commentaire.
De l'Python docs:
C'est le comportement attendu.
Si vous êtes sur un système unix, vous pouvez utiliser os.fourche:
L'exécution de ce crée deux processus. Vous pouvez tuer le parent sans tuer l'enfant.
Par exemple, lorsque vous exécutez le script, vous verrez quelque chose comme:
Arrêter le script avec la commande ctrl-Z:
Trouver le numéro d'ID de processus pour le parent. Il sera le plus petit des deux processus de numéros d'identification depuis le parent qui est venu en premier:
Tuer le processus parent:
De restauration script.py au premier plan:
Vous verrez le processus de l'enfant est toujours en cours d'exécution:
Tuer l'enfant (dans un nouveau terminal) avec
Simplement utiliser le
subprocess
module:Ici est une question connexe, où l'une des réponses donne une belle solution à ce problème:
"processus de frai de python"
Si vous êtes sur un système unix (l'utilisation de google documents):