Komenda lsof pozwala na wyświetlenie otwartych na systemie plików. Taka informacja przydaje się czasami. Np. kiedy chcesz odmontować system plików, ale jakiś proces otworzył plik w tym systemie plików i blokuje twoją operację.
Ponieważ w Linuxie wszystko jest plikiem, to można sprawdzić, czy jakiś proces otworzył zasoby związane z siecią. Dlatego żeby sprawdzić na jakich portach nasłuchują lokalne procedy można posłużyć się komendą:
lsof -i -P -n | grep LISTEN
Za co odpowiadają opcje?
-i listuje tylko pliki związane z zasobami sieciowymi
-P powstrzymuje komendę przed zamianą numeru portu na jego dobrze znaną nazwę, jak np http, ssh itp.
-n powstrzymuje komendę przez zamianą adresu IP na skojarzoną z nim nazwę
Oto przykładowy wynik:
[root@dbserv10 ~]# lsof -i -P -n | grep LISTEN systemd-r 704 systemd-resolve 12u IPv4 15140 0t0 TCP *:5355 (LISTEN) systemd-r 704 systemd-resolve 14u IPv6 15143 0t0 TCP *:5355 (LISTEN) postmaste 1051 postgres 6u IPv4 25950 0t0 TCP *:5432 (LISTEN) postmaste 1051 postgres 7u IPv6 25951 0t0 TCP *:5432 (LISTEN) sshd 6436 root 4u IPv4 44026 0t0 TCP *:22 (LISTEN) sshd 6436 root 6u IPv6 44028 0t0 TCP *:22 (LISTEN) edb-postm 14602 enterprisedb 6u IPv4 153377 0t0 TCP *:5444 (LISTEN) edb-postm 14602 enterprisedb 7u IPv6 153378 0t0 TCP *:5444 (LISTEN)