45 votes

Exécutez un programme à partir de python et faites-le continuer à s’exécuter après la mort du script

J’ai essayé d’exécuter des choses comme ceci:

Cela fonctionne si le script parent se ferme gracieusement, mais si je tue le script (Ctrl-C), tous mes processus enfants sont également tués. Y a-t-il un moyen d’éviter cela?

Les plates-formes qui me tiennent à cœur sont OS X et Linux, utilisant Python 2.6 et Python 2.7.

64voto

JonMc Points 599

Le processus enfant reçoit la même chose que votre processus parent car il se fait dans le même groupe de processus. Vous pouvez placer l’enfant dans son propre groupe de processus en appelant le processus enfant. ' est utile ici :

( est pour les un*x-oids uniquement. Il semble y avoir un équivalent approximatif pour Windows «  » mais je ne l’ai jamais essayé.)

31voto

edoloughlin Points 2048

La façon habituelle de le faire sur les systèmes Unix est de bifurquer et de quitter si vous êtes le parent. Jetez un coup d’œil à `` .

Voici une fonction qui fait le travail :

8voto

Après une heure de tentatives diverses, cela fonctionne pour moi:

C’est une solution pour Windows.

2voto

Zhiwei Huang Points 116

Depuis la 3.2, vous pouvez également utiliser `` l’indicateur (POSIX uniquement).

Voir start_new_session dans popen constructeur

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X