lsof
| lsof
| |
|---|---|
|
| |
| Date de bază
| |
| dezvoltator | Vic Abell |
| Anul publicării | 1994 (versiunea 3) |
| Versiunea actuală | 4,89 (7 iunie 2015) |
| sistem de operare | AIX 5.3, Darwin 9 ( macOS 10.5), FreeBSD 4.9 ( x86 ), FreeBSD 7 ( amd64 ), Linux 2.1.72 ( x86 , amd64 ), Solaris 9 și 10. |
| categorie | Analiza stării |
| Licență | Licență compatibilă cu BSD licența |
| Vorbitoare de limbă germană | da |
| https://people.freebsd.org/~abe/ | |
lsof ( L i s t o pen f iles) a fost dezvoltat de sursa deschisă Vic Abell -tool care pe Unix care programe care indică sistemele care fișiere sau socket-uri păstrează deschise.
Format de iesire
Fișierele deschise se află la lsof
- Socluri de domeniu UNIX (tip = unix)
- Fișiere obișnuite (tip = REG)
- FIFO (tip = FIFO)
- Deschide directoare (tip = DIR)
- Socluri de domeniu Internet (tip = IPv4 sau tip = IPv6 )
- Dispozitive cu caractere (fișiere speciale precum / dev / random ; tip = CHR)
și alte câteva zeci, cum ar fi soclurile AX.25 , dispozitivele bloc etc.
Rezultatul arată astfel:
COMMAND PID TID USER FD TYPE DEVICE SIZE/OFF NODE NAME ... ssh-agent 2678 lbo 3u unix 0xffff88013e71cac0 0t0 7624 /tmp/ssh-oyerzGJI2633/agent.2633 ssh-agent 2678 lbo 6w FIFO 0,8 0t0 4795 pipe ssh-agent 2678 lbo 8r FIFO 0,8 0t0 4799 pipe system-co 2866 lbo mem REG 8,6 162968 1050015 /usr/lib/x86_64-linux-gnu/libssh2.so.1.0.1 sshd 3031 root cwd DIR 8,6 4096 2 / sshd 3031 root rtd DIR 8,6 4096 2 / sshd 3031 root txt REG 8,6 517088 1053360 /usr/sbin/sshd sshd 3031 root mem REG 8,6 131107 1187879 /lib/x86_64-linux-gnu/libpthread-2.13.so sshd 3031 root mem REG 8,6 80712 1180726 /lib/x86_64-linux-gnu/libresolv-2.13.so sshd 3031 root 0u CHR 1,3 0t0 1028 /dev/null sshd 3031 root 3u IPv4 8026 0t0 TCP *:ospfapi (LISTEN) sshd 3031 root 4u IPv6 8028 0t0 TCP *:ospfapi (LISTEN) ssh 7314 lbo cwd DIR 8,7 4096 5767169 /home/lbo ssh 8602 lbo 3r IPv6 68343 0t0 TCP [2001:470:1f0b:2f2:3189:67c1:b550:9400]:56194->obsd-lbo6:ssh (ESTABLISHED) ... udevd 3226 root 11u netlink 0t0 10784 KOBJECT_UEVENT ...
Aici puteți vedea foarte bine diferitele tipuri (coloana TIP), aici bazându-se în principal pe clientul sshd și ssh.
Format de ieșire pentru alte programe
Pentru procesarea ieșirii cu scripturi, opțiunea -F poate fi utilizată pentru a genera un format de ieșire alternativ în care fiecare linie conține o literă de identificare urmată de valoarea corespunzătoare. O secțiune cu mai multe linii este creată pentru fiecare proces care rulează, care este introdus de linia cu litera p și ID-ul procesului. În cadrul unei secțiuni de proces există valori precum ID-ul utilizatorului procesului, introdus de u, precum și mai multe secțiuni pe fișierele deschise, introduse de o linie cu litera f și descriptorul de fișiere. O ieșire exemplară pentru procesul sshd cu două secțiuni de fișier ar arăta astfel:
... p5502 g5502 R1 csshd u0 Lroot fcwd a l tDIR D0x811 s4096 i2 k25 n/ ftxt a l tREG D0x811 s540896 i657919 k1 n/usr/sbin/sshd ...
Acest format de ieșire este utilizat de ex. B. din unele scripturi care sunt furnizate cu lsof.
Utilizare de zi cu zi
Isof este folosit foarte des atunci când comanda Unix umount refuză să demonteze un dispozitiv dacă fișierele sunt încă deschise pe acest dispozitiv sau în directorul său de montare (diamantul reprezintă o coajă de rădăcină):
# umount /mount/path umount: /mount/path: device is busy.
Cu lsof, acum este ușor să determinați ce programe trebuie închise pentru a asigura demontarea cu succes:
# lsof /mount/path bash 3156 usr cwd DIR 8,33 4096 2 /mount/path
Din intrarea găsită, se poate observa că utilizatorul usr rulează încă un shell bash cu PID 3156, care folosește / mount / path ca director de lucru ( directorul de lucru curent ), recunoscut după tipul DIR .
Versiunea de montare din pachetul util-linux indică chiar și lsof:
# umount /mount/path
umount: /mount/path: device is busy.
(In some cases useful info about processes that use the device is found by lsof(8) or fuser(1))