Existují dva důvody lsof | wc -l
nepočítá deskriptory souborů. Jedním z nich je, že uvádí věci, které nejsou otevřenými soubory, jako jsou načtené dynamicky propojené knihovny a aktuální pracovní adresáře; musíte je odfiltrovat. Další je, že lsof
trvá nějakou dobu, než se spustí, takže může chybět soubory, které se otevírají nebo zavírají, když běží; proto je počet uvedených otevřených souborů přibližný. Podívejte se na /proc/sys/fs/file-nr
vám poskytne přesnou hodnotu v konkrétním okamžiku.
cat /proc/sys/fs/file-nr
je užitečné pouze tehdy, když potřebujete přesné číslo, hlavně pro kontrolu vyčerpání zdrojů. Pokud chcete zobrazit seznam otevřených souborů, musíte zavolat lsof
nebo použijte nějakou ekvivalentní metodu, jako je lov pomocí vlečných sítí /proc/*/fd
ručně.
Informace o procesu jsou dynamicky uchovávány systémem v adresářích pod /proc. Například proces s PID 1234 bude mít adresář s názvem /proc/1234.
Je tam docela dost informací, ale právě teď vás zajímá /proc/1234/fd podadresář.
POZNÁMKA:Abyste mohli prohlížet nebo otevírat soubory pro procesy, které nevlastníte, a pro procesy SetUID, musíte mít oprávnění root.
Příklad:
[email protected]:/proc# ls -l 2443/fd
total 0
lr-x------ 1 johan johan 64 Feb 27 10:26 0 -> pipe:[13637]
l-wx------ 1 johan johan 64 Feb 27 10:26 1 -> /home/johan/.xsession-errors
lrwx------ 1 johan johan 64 Feb 27 10:26 10 -> anon_inode:[eventfd]
lrwx------ 1 johan johan 64 Feb 27 10:26 11 -> anon_inode:[eventfd]
lrwx------ 1 johan johan 64 Feb 27 10:26 12 -> socket:[39495]
lrwx------ 1 johan johan 64 Feb 27 10:26 13 -> anon_inode:[eventfd]
lr-x------ 1 johan johan 64 Feb 27 10:26 14 -> anon_inode:inotify
lrwx------ 1 johan johan 64 Feb 27 10:26 15 -> anon_inode:[eventfd]
l-wx------ 1 johan johan 64 Feb 27 10:26 16 -> pipe:[37885]
lr-x------ 1 johan johan 64 Feb 27 10:26 17 -> pipe:[37886]
l-wx------ 1 johan johan 64 Feb 27 10:26 2 -> /home/johan/.xsession-errors
l-wx------ 1 johan johan 64 Feb 27 10:26 21 -> pipe:[167984]
lr-x------ 1 johan johan 64 Feb 27 10:26 22 -> pipe:[167985]
l-wx------ 1 johan johan 64 Feb 27 10:26 23 -> pipe:[170009]
lr-x------ 1 johan johan 64 Feb 27 10:26 24 -> pipe:[170010]
lrwx------ 1 johan johan 64 Feb 27 10:26 3 -> anon_inode:[eventfd]
lr-x------ 1 johan johan 64 Feb 27 10:26 4 -> pipe:[14726]
lrwx------ 1 johan johan 64 Feb 27 10:26 5 -> socket:[14721]
l-wx------ 1 johan johan 64 Feb 27 10:26 6 -> pipe:[14726]
lrwx------ 1 johan johan 64 Feb 27 10:26 7 -> socket:[14730]
lrwx------ 1 johan johan 64 Feb 27 10:26 8 -> socket:[13984]
lrwx------ 1 johan johan 64 Feb 27 10:26 9 -> socket:[14767]
[email protected]:/proc# cat 2443/fdinfo/2
pos: 1244446
flags: 0102001
Podívejte se také na zbytek souborů pod /proc ...zde se nachází mnoho užitečných informací ze systému.