Je voudrais utiliser le os.execv
de Python pour remplacer mon processus actuel, mais je souhaite également que le nouveau processus envoie stdout
à un autre processus (pour collecter les journaux et les envoyer sur le réseau). Le processus de collecte des journaux doit également être démarré par le processus Python d'origine.Exécution Python execv et pipe
Je suppose que je dois faire un peu de fork, dup2, execv, mais j'ai besoin d'aide.
En bash, il pourrait ressembler à ceci
#!/bin/bash
exec ./foo ∣ ./bar
le module 'subprocess' peut faire pour vous: https://gist.github.com/JacobIRR/dced5ce0f19e4f376aaef19d0e80d9d7 – JacobIRR
@JacobIRR qui exécute la commande dans un sous-processus, il ne remplace pas le processus en cours. – Barmar
Note mineure, qui ne fait pas tout à fait ce que vous pensez dans Bash - le processus principal suit la dernière étape du pipeline, donc 'exec' n'a aucun effet. – ephemient