W Linuksie, jeśli /proc/<pid>/fd
często się zagłębiasz, zobaczysz dane wyjściowe takie jak:
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]
Jak uzyskać więcej informacji o otwartych potokach, takich jak proces na drugim końcu?
/proc
jest powolne. Czy ktoś może zapewnić bardziej skuteczne rozwiązanie?Odpowiedzi:
Podobne do innych odpowiedzi, ale:
Pokaże oba końce, ponieważ oba końce mają wspólny „numer potoku”.
źródło
lsof -n -P | grep 90222668
aby uniknąć niepotrzebnych wyszukiwań nazw, co powinno przyspieszyć.Jedynym sposobem na znalezienie procesu na drugim końcu jest zapętlenie wszystkich procesów w / proc i sprawdzenie, które używają tego potoku (tj. Które mają dowiązania symboliczne w / proc / pid / fd do tego samego ID potoku)
źródło
ls -l /proc/*/fd/ | grep $PIPE_ID; ls -l /proc/*/fd/$FD | grep $PIPE_ID
Pierwsze polecenie ls wypisze deskryptory plików na obu końcach potoku, a drugie poda identyfikator procesuNajwięcej informacji, jakie znam na otwartych rurach, to
Obawiam się, że wciąż mówi tylko o jednym końcu.
źródło