Wenn Sie unter Linux /proc/<pid>/fd
häufig reingehen, sehen Sie folgende Ausgabe:
lrwx------ 1 root root 64 Jul 30 15:14 0 -> /dev/null
lrwx------ 1 root root 64 Jul 30 15:14 1 -> /dev/null
l-wx------ 1 root root 64 Jul 30 15:14 10 -> pipe:[90222668]
lr-x------ 1 root root 64 Jul 30 15:14 11 -> pipe:[90222669]
l-wx------ 1 root root 64 Jul 30 15:14 13 -> pipe:[90225058]
lr-x------ 1 root root 64 Jul 30 15:14 14 -> pipe:[90225059]
Wie erhalte ich weitere Informationen zu den offenen Pipes, z. B. welcher Prozess ist am anderen Ende?
/proc
ist langsam. Kann jemand eine effektivere Lösung anbieten?Antworten:
Ähnlich wie bei anderen Antworten, aber:
Zeigt Ihnen beide Enden an, da beide Enden die Pipe-Nummer gemeinsam haben.
quelle
lsof -n -P | grep 90222668
, um unnötige Namenssuchen zu vermeiden, die die Suche beschleunigen sollten.Der einzige Weg, um herauszufinden, welcher Prozess sich am anderen Ende befindet, besteht darin, alle Prozesse in / proc zu durchlaufen und zu sehen, welche diese Pipe verwenden (dh welche Symlinks in / proc / pid / fd zu derselben Pipe-ID haben).
quelle
ls -l /proc/*/fd/ | grep $PIPE_ID; ls -l /proc/*/fd/$FD | grep $PIPE_ID
Der erste Befehl ls gibt die Dateideskriptoren an beiden Enden der Pipe aus, während der zweite die Prozess-IDDie meisten Informationen, die ich über offene Leitungen erhalten kann, sind
Erzählt leider immer noch nur von einem Ende.
quelle