Sommario
/procEstratto
In questo capitolo vengono illustrati alcuni dei numerosi programmi e meccanismi che è possibile utilizzare per esaminare lo stato del sistema. Vengono inoltre descritte alcune utility che semplificano l'esecuzione di operazioni ripetitive con i relativi principali parametri.
Per ogni comando vengono forniti esempi degli output rilevanti. In tali esempi la prima riga contiene il comando vero e proprio, dopo > dal prompt con il segno di dollaro. I commenti sono racchiusi tra parentesi quadre ([...]) e le righe lunghe dove necessario vengono riportate a capo. Le interruzioni di riga sono indicate da una barra rovesciata (\).
# command -x -y
output line 1
output line 2
output line 3 is annoyingly long, so long that \
we have to break it
output line 3
[...]
output line 98
output line 99
Al fine di poter presentare il maggior numero di utility possibile, la lunghezza delle descrizioni è stata volutamente limitata. Per ulteriori informazioni su tutti questi comandi, vedere le rispettive documentazioni. La maggior parte di questi comandi supporta inoltre l'opzione --help, che consente di visualizzare un breve elenco dei parametri utilizzabili.
Per visualizzare un elenco di tutti i file aperti per un processo con l'ID di processo PID, utilizzare -p. Ad esempio, per visualizzare tutti i file utilizzati dalla shell attuale, immettere:
tester@linux:~> lsof -p $$ COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME bash 5552 tester cwd DIR 3,3 1512 117619 /home/tester bash 5552 tester rtd DIR 3,3 584 2 / bash 5552 tester txt REG 3,3 498816 13047 /bin/bash bash 5552 tester mem REG 0,0 0 [heap] (stat: No such \ file or directory) bash 5552 tester mem REG 3,3 217016 115687 /var/run/nscd/passwd bash 5552 tester mem REG 3,3 208464 11867 \ /usr/lib/locale/en_GB.utf8/LC_CTYPE bash 5552 tester mem REG 3,3 882134 11868 \ /usr/lib/locale/en_GB.utf8/LC_COLLATE bash 5552 tester mem REG 3,3 1386997 8837 /lib/libc-2.3.6.so bash 5552 tester mem REG 3,3 13836 8843 /lib/libdl-2.3.6.so bash 5552 tester mem REG 3,3 290856 12204 /lib/libncurses.so.5.5 bash 5552 tester mem REG 3,3 26936 13004 /lib/libhistory.so.5.1 bash 5552 tester mem REG 3,3 190200 13006 /lib/libreadline.so.5.1 bash 5552 tester mem REG 3,3 54 11842 \ /usr/lib/locale/en_GB.utf8/LC_NUMERIC bash 5552 tester mem REG 3,3 2375 11663 \ /usr/lib/locale/en_GB.utf8/LC_TIME bash 5552 tester mem REG 3,3 290 11736 \ /usr/lib/locale/en_GB.utf8/LC_MONETARY bash 5552 tester mem REG 3,3 52 11831 \ /usr/lib/locale/en_GB.utf8/LC_MESSAGES/SYS_LC_MESSAGES bash 5552 tester mem REG 3,3 34 11862 \ /usr/lib/locale/en_GB.utf8/LC_PAPER bash 5552 tester mem REG 3,3 62 11839 \ /usr/lib/locale/en_GB.utf8/LC_NAME bash 5552 tester mem REG 3,3 127 11664 \ /usr/lib/locale/en_GB.utf8/LC_ADDRESS bash 5552 tester mem REG 3,3 56 11735 \ /usr/lib/locale/en_GB.utf8/LC_TELEPHONE bash 5552 tester mem REG 3,3 23 11866 \ /usr/lib/locale/en_GB.utf8/LC_MEASUREMENT bash 5552 tester mem REG 3,3 21544 9109 \ /usr/lib/gconv/gconv-modules.cache bash 5552 tester mem REG 3,3 366 9720 \ /usr/lib/locale/en_GB.utf8/LC_IDENTIFICATION bash 5552 tester mem REG 3,3 97165 8828 /lib/ld-2.3.6.so bash 5552 tester 0u CHR 136,5 7 /dev/pts/5 bash 5552 tester 1u CHR 136,5 7 /dev/pts/5 bash 5552 tester 2u CHR 136,5 7 /dev/pts/5 bash 5552 tester 255u CHR 136,5 7 /dev/pts/5
In questo esempio è stata utilizzata la variabile di shell speciale $$, il cui valore corrisponde all'ID di processo della shell.
Se viene utilizzato senza specificare alcun parametro, il comando lsof consente di generare un elenco di tutti i file attualmente aperti. Poiché i file aperti sono spesso nell'ordine delle migliaia, un elenco completo risulta utile solo in rari casi. Per generare elenchi utili, è possibile utilizzare l'elenco di tutti i file in combinazione con apposite funzioni di ricerca. È ad esempio possibile visualizzare un elenco di tutti i dispositivi a caratteri utilizzati:
tester@linux:~> lsof | grep CHR bash 3838 tester 0u CHR 136,0 2 /dev/pts/0 bash 3838 tester 1u CHR 136,0 2 /dev/pts/0 bash 3838 tester 2u CHR 136,0 2 /dev/pts/0 bash 3838 tester 255u CHR 136,0 2 /dev/pts/0 bash 5552 tester 0u CHR 136,5 7 /dev/pts/5 bash 5552 tester 1u CHR 136,5 7 /dev/pts/5 bash 5552 tester 2u CHR 136,5 7 /dev/pts/5 bash 5552 tester 255u CHR 136,5 7 /dev/pts/5 X 5646 root mem CHR 1,1 1006 /dev/mem lsof 5673 tester 0u CHR 136,5 7 /dev/pts/5 lsof 5673 tester 2u CHR 136,5 7 /dev/pts/5 grep 5674 tester 1u CHR 136,5 7 /dev/pts/5 grep 5674 tester 2u CHR 136,5 7 /dev/pts/5