Ich versuche, ein merkwürdiges Verhalten einiger Prozesse nachzuvollziehen, und bin auf einen Punkt gestoßen, an dem ich nicht sicher bin, wie ich die Vergangenheit nachvollziehen soll. Der angehängte Prozess, an den ich angehängt habe, hat Folgendes strace -p
gezeigt:
Process 7926 attached - interrupt to quit
read(3,
Okay, es wartet auf die Eingabe auf fd 3, also habe ich nachgesehen, was es ist:
$ ls -l /proc/7926/fd/3
lr-x------ 1 user grp 64 Mar 15 10:41 /proc/7926/fd/3 -> pipe:[20043922]
Okay, es ist eine Pfeife ... nun die Frage - wer ist der Schreiber dieser Pfeife? Ich erinnere mich, dass es unter Linux eine spezielle Funktion für Unix-Domain-Sockets gibt, bei der Sie einen Dateipfad anfordern können, der mit einem NUL-Byte beginnt, um auf den "abstrakten Socket-Namespace" zuzugreifen (hier erwähnt: http://tkhanson.net/cgit.cgi) /misc.git/plain/unixdomain/Unix_domain_sockets.html ). Ich bin nicht sicher, ob es etwas Ähnliches für Pfeifen gibt, das ich ausnutzen könnte, aber ich habe nichts gefunden.
Ich war ein Werkzeug wie gehofft , fuser
oder lsof
könnten helfen, aber ich habe nicht überall bekommen.
Irgendwelche Ideen?
Sie können die Liste der Prozesse über die Pipe mit dem folgenden
lsof
Befehl abrufen:lsof | grep 'FIFO.*20043922'
Die Ausgabe zeigt die Reader (in der FD-Spalte mit Einträgen wie 1r) und Writer (dieselben Spalten mit Einträgen wie 2w).
quelle