Il filesystem /proc |
Home Page | Commenti | Articoli | Faq | Documenti | Ricerca | Archivio | Storie dalla Sala Macchine | Contribuire | Imposta lingua:en it | Login/Register
A cura di Davide Bianchi |
Il file system /proc e' un file system
creato e mantenuto a run-time dal Kernel di Linux per tenere traccia
dei vari processi che stanno funzionando sulla macchina e del loro
stato. Tramite /proc si possono ottenere un sacco di informazioni
su quello che c'e', come e' configurato e come funziona.
|
Il file system /proc
|
Il file system /proc (d'ora in poi solo /proc), e' un file system
creato e mantenuto a run-time dal Kernel di linux per tenere traccia
dei vari processi che stanno funzionando sulla macchina e del loro
stato. Tramite /proc si possono ottenere un sacco di informazioni
su quello che c'e', come e' configurato e come funziona.
La cosa piu' interessante relativa a /proc e' che non esiste in realta', /proc legge direttamente dalla memoria del sistema le sue informazioni in "tempo reale". /proc puo' essere letto da qualunque utente che abbia i corretti permessi di accesso, alcune parti di /proc possono pero' essere lette solamente dal proprietario del processo in questione e (ovviamente) da root. Sotto linux, vi sono varie utility come lscpi, scanpci etc. che ottengono i loro dati proprio leggendo /proc ed interpretandone le informazioni. Altre utility simili sono ps e top. La / di un sistema Unix/Linux di solito si presenta cosi': ... drwxr-xr-x 14 root root 291 Oct 25 18:47 opt dr-xr-xr-x 86 root root 0 Dec 12 2000 proc <--- drwx--x--x 16 root root 841 Nov 20 00:10 root drwxr-xr-x 5 root root 4627 Oct 15 11:42 sbin ...Dato che /proc e' un file system virtuale, esso e' ricreato ogni volta che la macchina viene accesa, quindi la sua data/ora e' sempre aggiornata.
|
|||||||||||||
Usare /proc/sys per verificare/modificare i parametri del kernel.
|
/proc/sys contiene molti parametri usati dal kernel di Linux/Unix,
utilizzando questa directory, possiamo controllare e modificare
alcuni di questi parametri. Per esempio se usiamo
cat /proc/sys/net/ipv4/ip_forwardotteniamo "0" se l'ip forwarding e' disattivato ed "1" se e' attivato. Ma questa configurazione puo' essere modificata cambiando il contenuto dello stesso file.
|
|||||||||||||
Il contenuto di /proc
|
Il contenuto di /proc e' qualche cosa di simile a:
1 114 1210 1211 1212 1227 133 137 148 160 161 163 167 168 169 170 171 172 173 174 186 190 193 194 195 203 206 207 208 209 210 211 220 221 222 223 224 225 226 227 229 230 234 246 253 279 296 3 4 5 500 501 6 667 668 669 683 684 685 7 711 712 713 737 763 764 765 766 773 774 775 782 79 88 92 asound bus cmdline config.gz cpuinfo devices dma fb filesystems fs ide interrupts ioports kcore kcore_elf kmsg ksyms loadavg locks lvm mdstat meminfo memstat misc modules mounts net partitions pci rtc scsi self slabinfo stat swaps sys tty uptime versionLe directory "numeriche" sono i singoli processi in esecuzione nella macchina nell'istante in cui abbiamo fatto il nostro ls /proc. Prima di "vedere" il contenuto di ogni singola directory occorre essere root, questo perche' il processo puo' appartenere ad un diverso utente e quindi proibire l'accesso. Una volta ottenuto l'accesso, possiamo vedere il contenuto della directory: opus:/proc # ls -la 114 total 0 dr-xr-xr-x 3 named named 0 Nov 30 12:20 . dr-xr-xr-x 89 root root 0 Nov 30 2000 .. -r--r--r-- 1 root root 0 Nov 30 12:20 cmdline lrwx------ 1 root root 0 Nov 30 12:20 cwd -> /var/named -r-------- 1 root root 0 Nov 30 12:20 environ lrwx------ 1 root root 0 Nov 30 12:20 exe -> /usr/sbin/named dr-x------ 2 root root 0 Nov 30 12:20 fd pr--r--r-- 1 root root 0 Nov 30 12:20 maps -rw------- 1 root root 0 Nov 30 12:20 mem lrwx------ 1 root root 0 Nov 30 12:20 root -> / -r--r--r-- 1 root root 0 Nov 30 12:20 stat -r--r--r-- 1 root root 0 Nov 30 12:20 statm -r--r--r-- 1 root root 0 Nov 30 12:20 statusIl contenuto delle varie directory e' praticamente lo stesso, indipendentemente dalla directory che scegliamo. Solo i valori dei singoli parametri cambiano a seconda del processo scelto. |
|||||||||||||
Esaminare un processo
|
Esaminando i vari "file" contenuti all'interno della
sottodirectory di /proc che identifica un processo
possiamo scoprire varie cose relative al processo stesso:
-r--r--r-- 1 root root 0 Nov30 12:20 cmdlineQuesto contiene l'intera linea di comando invocata per avviare il processo. Il tutto e' ficcato dentro senza alcuno spazio e senza nessuna formattazione particolare. lrwx------ 1 root root 0 Nov 30 12:20 cwd -> /var/namedquesto e' un link simbolico alla directory di lavoro di quel particolare processo. -r-------- 1 root root 0 Nov 30 12:20 environquesto contiene tutte le variabili di ambiente che sono definite per quel particolare processo, nella forma VARIABILE=valore. Come per cmdline, anche queste sono ficcate dentro senza nessuna formattazione ne' spazi tra i vari parametri. lrwx------ 1 root root 0 Nov 30 12:20 exe -> /usr/sbin/namedquesto e' un link al file eseguibile che e' in esecuzione. dr-x------ 2 root root 0 Nov 30 12:20 fdQuesta directory contiene l'elenco dei file descriptors che sono usati dal processo in questione. pr--r--r-- 1 root root 0 Nov 30 12:20 mapsQuesta pipe contiene la "mappa" delle aree di memoria che sono attualmente "mappate" a file su disco. lrwx------ 1 root root 0 Nov 30 12:20 root -> /Questo link mostra quale e' la directory "root" per quel particolare processo. Un processo potrebbe avere una root che non corrisponde alla "vera" root. -r--r--r-- 1 root root 0 Nov 30 12:20 statusQuesto file fornisce informazioni relative allo stato del processo, cioe' se e' "dormiente" o se sta' lavorando, il suo PID, UID, PPID ed altre informazioni simili. Queste informazioni sono le stesse che possono essere visualizzate usando ps e top.
|
|||||||||||||
Altre informazioni generiche riguardo /proc
|
NOTA: queste informazioni sono tratte da LASG - capitolo 3
|
|||||||||||||
Bibliografia ed altre fonti sull'argomento
|
Linux Administration System Guide - O'Reilly Unix Administration Basic Guide - O'Reilly |
I commenti sono aggiunti quando e soprattutto se ho il tempo di guardarli e dopo aver eliminato le cagate, spam, tentativi di phishing et similia. Quindi non trattenete il respiro.
Di Anonymous coward postato il 16/08/2011 14:09
Linux Administration System Guide - O'Reilly
non esiste...
-- Anonymous coward
@ Anonymous coward Di Davide Bianchi postato il 17/08/2011 09:56
Linux Administration System Guide - O'Reillynon esiste...
Hai ragione, adesso si chiama
Linux System Administration
@ Davide Bianchi Di Anonymous coward postato il 18/08/2011 08:42
Linux Administration System Guide - O'Reillynon esiste...
Hai ragione, adesso si chiama Linux System Administration
mica per niente è...volevo comprarlo e non lo trovavo
-- Anonymous coward
Davide Bianchi, lavora come Unix/Linux System Administrator presso una societa' di Hosting in Olanda.
Il presente sito e' frutto del sudore della mia fronte (e delle mie dita), se siete interessati a ripubblicare uno degli articoli, documenti o qualunque altra cosa presente in questo sito per cortesia datemene comunicazione (o all'autore dell'articolo se non sono io), cosi' il giorno che faccio delle aggiunte potro' avvisarvi e magari mandarvi il testo aggiornato.
Questo sito era composto con VIM, ora e' composto con VIM ed il famosissimo CMS FdT.
Questo sito non e' ottimizzato per la visione con nessun browser particolare, ne' richiede l'uso di font particolari o risoluzioni speciali. Siete liberi di vederlo come vi pare e piace, o come disse qualcuno: "Finalmente uno dei POCHI siti che ancora funzionano con IE5 dentro Windows 3.1".