J'essaie de rediriger toute la sortie d'un programme en ligne de commande vers un fichier. J'utilise Bash. Une partie de la sortie est dirigée vers le fichier, mais une autre partie apparaît toujours dans le terminal et n'est pas enregistrée dans le fichier.
Des symptômes similaires sont décrits ici :
Rediriger toutes les sorties vers un fichier
Cependant, j'ai essayé la solution proposée (capture stderr) sans succès :
<cmd> <args> > stdout.txt 2> stderr.txt
Le fichier stderr.txt est créé mais est vide.
Un indice possible est que le programme en ligne de commande est un client communiquant avec un serveur sur la même machine. Il se peut qu'une partie de la sortie provienne du programme en ligne de commande. serveur .
Existe-t-il un moyen de capturer toutes les sorties du terminal, quelle que soit leur origine ?
EDITAR:
J'ai confirmé que la sortie manquante est générée par le serveur. L'exécution de la commande dans un terminal distinct entraîne une sortie dans les deux terminaux, je peux acheminer toute la sortie du terminal de commande vers un fichier. Cela soulève la question de savoir comment capturer la sortie du serveur, mais c'est une autre question.