Gestione dei processi

Come avevo anticipato la volta scorsa, l’argomento di oggi saranno i processi in linux e la loro gestione da parte dell’utente. I miei colleghi hanno già parlato di cosa sono in ambito programmativo (in particolare in C, date un occhio qua http://www.cyberpills.net/23-processi-padrefiglio/ ), pertanto ci “limiteremo” a vederli dal punto di vista esecutivo. Se qualcuno avesse dubbi su cosa siano in pratica, vi lascio pensare a quando in Windows (per citarne uno a caso) le cose andavano male, lo schermo si bloccava, la prima cosa era il panico seguito da un CTRL+ALT+CANC per aprire la Gestione Attività, ed eliminare il processo che causava il problema.

Ogni programma che viene lanciato da terminale, aperto graficamente o fatto apparire magicamente sul vostro schermo è un processo e come tale viene identificato dal sistema operativo attraverso il PID (guida sopra). Vediamo come trovarli e visualizzarli in linux.

Quando abbiamo descritto il filesystem di linux abbiamo detto che ogni cosa che vediamo o sappiamo esserci nel nostro sistema operativo, si troverà scritta da qualche parte, su un file di testo o altro in una cartella sperduta chissà dove. Questo vale anche per i processi. Possiamo trovarli infatti all’interno di questa path: /proc

Come vedrete, al suo interno le cartelle, nominate con il numero dei PID, si creano e distruggono alla creazione e distruzione dei relativi processi! Ma vediamo di aprirne una…

 

15 - img

Lista di tutte le cartelle nominate con il PID presenti in /proc

 

Di questi ho deciso di aprire il 1707, che in questo momento è la cartella contenente le informazioni relative al processo iceweasel (ovvero il browser).

 

15 - img2

Lascio ai più curiosi il compito di vedere cosa sono i vari file all’interno delle singole cartelle..

Ma passiamo oltre! È abbastanza dispendioso in termini di tempo chiudere un processo che non ci serve da terminale andando a trovare la cartella che lo contiene ed eliminando il suo contenuto… fattibile, ma dispendioso. Per questo ci sono dei comandi che ci permettono di farlo in modo più semplice

Comandi:

 

ps

Partiamo dalle origini, ovvero da uno dei primi (se non il primo) comando che ci permette di visualizzare i processi correntemente aperti sul nostro terminale. Comando dalla sintassi semplice (vedere il man per più dettagli), ma abbastanza limitato: una volta eseguito il comando ps (spesso con i parametri a, u, x : ps aux) infatti non è possibile vedere se sono stati effettuati dei cambiamenti a meno di lanciare la sua esecuzione un’altra volta.

Siamo alla ricerca quindi di qualcosa di più dinamico…

 

top

Presente di default come comando in ogni distro di linux, top è il comando che ci permette di visualizzare in contemporanea i processi e la memoria da essi utilizzata, quanti sono e in che stato si trovano…insomma, tutto quello che ci serve. Inoltre è interattivo, si aggiorna ogni X secondi (è possibile cambiare questo parametro) e ci mostra accanto al nome del processo il relativo PID.

15 - img3

A questo punto non ci resta che capire come chiudere un determinato processo attraverso il suo PID. Chiunque abbia letto la guida di C, saprà che in linux ci sono padri, figli, orfani, zombie… insomma, non ci si annoia. Quindi perché non introdurre un meccanismo che “uccida” chi non ci serve?

I processi infatti non si chiudono… si uccidono. E il prossimo comando ci mostrerà come:

 

kill

Comando che si occupa di “terminare” in maniera più o meno forzata (per i dettagli guardate ovviamente il man) un programma che non è più necessario oppure che fatica a chiudersi. La sintassi di base è la seguente: kill PID (con il numero del processo al posto di PID). Le prime volte che lo usate potreste sentirvi cosi….Kill-it-with-fire
…ma è perfettamente normale…

Oltre a kill abbiamo uno svariato numero di combinazioni e parametri con cui possiamo giocare, tra questi il comando killall che termina i processi per nome e altri

 

htop

htop è una versione “fancy” di top, non è presente di default all’interno delle distro e necessita di essere scaricata ed installata.

Htop

Tuttavia noi non abbiamo ancora visto come scaricare e installare programmi e applicazioni all’interno del sistema operativo linux. La prossima volte vedremo come si dividono gli utenti tra di loro, i gruppi e l’utente root. Alla prossima!

Please follow and like us: