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, preceduto 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:
$ lsof -p $$ COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME zsh 4694 jj cwd DIR 0,18 144 25487368 /suse/jj/t (totan:/real-home/jj) zsh 4694 jj rtd DIR 3,2 608 2 / zsh 4694 jj txt REG 3,2 441296 20414 /bin/zsh zsh 4694 jj mem REG 3,2 104484 10882 /lib/ld-2.3.3.so zsh 4694 jj mem REG 3,2 11648 20610 /usr/lib/zsh/4.2.0/zsh/rlimits.so [...] zsh 4694 jj mem REG 3,2 13647 10891 /lib/libdl.so.2 zsh 4694 jj mem REG 3,2 88036 10894 /lib/libnsl.so.1 zsh 4694 jj mem REG 3,2 316410 147725 /lib/libncurses.so.5.4 zsh 4694 jj mem REG 3,2 170563 10909 /lib/tls/libm.so.6 zsh 4694 jj mem REG 3,2 1349081 10908 /lib/tls/libc.so.6 zsh 4694 jj mem REG 3,2 56 12410 /usr/lib/locale/de_DE.utf8/LC_TELEPHONE [...] zsh 4694 jj mem REG 3,2 59 14393 /usr/lib/locale/en_US/LC_NUMERIC zsh 4694 jj mem REG 3,2 178476 14565 /usr/lib/locale/en_US/LC_CTYPE zsh 4694 jj mem REG 3,2 56444 20598 /usr/lib/zsh/4.2.0/zsh/computil.so zsh 4694 jj 0u CHR 136,48 50 /dev/pts/48 zsh 4694 jj 1u CHR 136,48 50 /dev/pts/48 zsh 4694 jj 2u CHR 136,48 50 /dev/pts/48 zsh 4694 jj 10u CHR 136,48 50 /dev/pts/48
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:
$ lsof | grep CHR sshd 4685 root mem CHR 1,5 45833 /dev/zero sshd 4685 root mem CHR 1,5 45833 /dev/zero sshd 4693 jj mem CHR 1,5 45833 /dev/zero sshd 4693 jj mem CHR 1,5 45833 /dev/zero zsh 4694 jj 0u CHR 136,48 50 /dev/pts/48 zsh 4694 jj 1u CHR 136,48 50 /dev/pts/48 zsh 4694 jj 2u CHR 136,48 50 /dev/pts/48 zsh 4694 jj 10u CHR 136,48 50 /dev/pts/48 X 6476 root mem CHR 1,1 38042 /dev/mem lsof 13478 jj 0u CHR 136,48 50 /dev/pts/48 lsof 13478 jj 2u CHR 136,48 50 /dev/pts/48 grep 13480 jj 1u CHR 136,48 50 /dev/pts/48 grep 13480 jj 2u CHR 136,48 50 /dev/pts/48