Il me semble que tu ne peux pas rediriger la sortie standard vers l'écran ! Quand tu as lancé ta commande
le système, ou plus exactement le shell, a redirigé la sortie standard de a vers l'entrée standard de b au lieu de garder cette sortie vers lui pour l'afficher sur le terminal. A la mort de b, ce flux n'est plus valide, ce qui vaut à a de recevoir des SIGPIPE.
- Si tu veux continuer à faire fonctionner a et voir sa sortie, ce que tu peux faire, c'est
- soit utiliser la seconde sortie : erreur standard de a à partir du moment où tu reçois le SIGPIPE (Remarque: les messages d'erreur de a devraient être écrits sur stderr),
- soit dupliquer la sortie de a vers un fichier de log par exemple.
- Si tu veux arrêter a, ça devrait marcher avec l'interception du SIGPIPE : si ce sont les messages qui te gênent, il faut là encore utiliser stderr !
Partager