Je me demande si c'est la bonne façon d'exécuter un processus système et se détacher du parent, mais permettant au parent de quitter sans créer un zombie et/ou tuer l'enfant processus. Je suis actuellement à l'aide du module de sous-processus et le faire ...Python spawn sur un sous-processus enfant, détacher, et quitter
os.setsid()
os.umask(0)
p = subprocess.Popen(['nc', '-l', '8888'],
cwd=self.home,
stdout=subprocess.PIPE,
stderr=subprocess.STDOUT)
os.setsid() modifie le groupe de processus, je crois que le processus permet de continuer à fonctionner quand il est sorties de parents, car il ne appartient au même groupe de processus.
Est-ce correct et est-ce une façon fiable d'effectuer cela? Fondamentalement, j'ai un utilitaire de contrôle à distance qui communique via les sockets et permet de démarrer les processus à distance, mais je dois m'assurer que si la commande à distance meurt, les processus démarrés continueront d'être inchangés.
Je lisais sur les doubles-fourchettes et je ne sais pas si cela est nécessaire et/ou subprocess.POpen close_fds en quelque sorte prend soin de cela et tout ce qui est nécessaire est de changer le groupe de processus?
Merci.
Ilya
Jetez un oeil à http://code.activestate.com/recipes/278731-creating-a-daemon-the-python-way/ http://www.python.org/dev/peps/pep- 3143/# reference-implementation – sehe