Il existe différentes options pour surveiller cela. Je suppose que vous avez deux processus. Un processus écrit au fifo et l'autre est en train de lire.
Si vous devez déboguer le lecteur et l'enregistreur séparément, vous pouvez utiliser un programme simple tel que cat
.
writer-process
# and in another terminal
cat /run/myfifo
ou
reader-process &
# and in another terminal
cat > /run/myfifo
Lorsque vous avez besoin debug écrivain et lecteur ensemble, vous pouvez utiliser strace
que Daniel Schepler recommandé. La ligne peut être exécutée avec votre programme et la sortie de journalisation est redirigée vers un autre terminal /dev/pts/4
dans ce cas.
strace -e read -s 999 reader-process 2> /dev/pts/4
La commande enregistre tous les appels lus à partir de tous les descripteurs de fichiers. Si vous souhaitez filtrer uniquement la lecture depuis le tube, vous devez identifier le descripteur de fichier fifo et grep la sortie. Si l'option n'est pas une option, vous pouvez forcer le lecteur et l'auteur à utiliser des noms fifo différents, puis connecter ces deux fifos dans un programme qui enregistre les données transférées. La variante la plus simple d'un tel connecteur peut être un script comme
cat < /run/mywritefifo | tee /dev/tty > /run/myreadfifo
Pourriez-vous «stracer» les processus et filtrer les appels système lecture/écriture sur le FIFO? –
Vous pourriez toujours juste "chat" le FIFO. Il devrait le traiter comme une socket, auquel cas le comportement est à lire jusqu'à EOF. – bnaecker