J'essaie de porter un shell script vers la version python, beaucoup plus lisible. Le shell original script démarre plusieurs processus (utilitaires, moniteurs, etc.) en arrière-plan avec "&". Comment puis-je obtenir le même effet en python ? J'aimerais que ces processus ne meurent pas lorsque les scripts python se terminent. Je suis sûr que cela est lié d'une manière ou d'une autre au concept de démon, mais je n'ai pas trouvé comment le faire facilement.
@Dan : Comment puis-je tuer le processus une fois qu'il tourne en arrière-plan ? Je veux l'exécuter pendant un certain temps (c'est un démon avec lequel j'interagis) et le tuer quand j'en ai fini avec lui. La documentation ne m'aide pas...
2 votes
La question qui fait vraiment double emploi est Comment lancer et exécuter un script externe en arrière-plan ? . Santé ;)
1 votes
Salut Artem. Veuillez accepter La réponse de Dan parce que (1) plus de votes, (2)
subprocess.Popen()
est la nouvelle voie recommandée depuis 2010 (nous sommes en 2015 maintenant) et (3) le question dupliquée rediriger ici a aussi une réponse acceptée à propos desubprocess.Popen()
. A la vôtre :-)1 votes
@olibre En fait, la réponse devrait être
subprocess.Popen("<command>")
avec le fichier <command> conduit par un shebang approprié. Cela fonctionne parfaitement pour moi (Debian) avec des scripts bash et python, implicitementshell
et survit à son processus parent.stdout
va au même terminal que celui de ses parents. Cela fonctionne donc un peu comme&
dans une coquille, ce qui était la demande de l'OP. Mais bon, toutes les questions s'avèrent très complexes alors qu'un petit test l'a montré en un rien de temps ;)0 votes
Pour le contexte, voir aussi stackoverflow.com/a/51950538/874188