next up previous contents
Next: La respirazione bocca a Up: Il processo del lunedì. Previous: La distribuzione equa delle   Contents

Le statistiche sui processi (ps)

Ora, se tutto questo vi è sembrato inconsuetamente facile per uno Unix, sappiate che in realtà le cose sono molto diverse e, ovviamente, molto più complicate.

Sorpresi? Prima di confondervi del tutto è opportuno dire che diavolo sono questi processi di cui si continua a parlare. Considerateli come una proiezione simbolica dei programmi che stanno girando sul computer. Ogni programma che viene lanciato genera uno o anche più processi. I programmi che prima avete messo in background, o che avete riesumato, avevano a loro volta generato dei processi. Il sistema operativo li cataloga, li numera, procede a un'identificazione completa che tiene conto anche di chi ha lanciato il programma. Ricordate che un programma che gira a vostro nome (perché lanciato da voi o perché vostro e con lo sticky bit attivo) può leggere e/o modificare tutti i file su cui avete i rispettivi permessi. I numeri che avete messo dopo i vari fg, bg, kill sono validi solo per voi. Unix invece tiene il proprio conto e lo stesso programma che avete fatto fuori con kill %1 per lui era magari il processo numero 739 o 3471.

Per vedere quali sono in effetti i processi che avete aperto lanciando i programmi (considerate che anche la shell ne genera uno) digitate quanto segue e vi appariranno schermate simili.




width


$ ps 
PID TTY TIME CMD 
210 tty2 00:00:00 bash 
304 tty2 00:00:00 backgammon 
301 tty2 00:00:00 vi 
325 tty2 00:00:00 ps 



width

Se avete lanciato un programma che non ha bisogno di una console o di un terminale per funzionare non lo vedrete nell'elenco. Il comando ps può darvi informazioni anche sui processi non vostri. Per ottenere un elenco completo dei processi, compresi quelli che non usano la console e quelli degli altri utenti, provate a lanciarlo con le opzioni aux. Per estrapolare tra tutti i processi proprio quelli vostri basta fare passare luscita di ps da un opportuno grep.




width


$ ps xua | grep luther 
luther  210  0.0  1.7  1168  552  tty2  S 05:34 0:00 bash 
luther  212  0.0  0.0  1168    0  tty4 SW 05:34 0:00 [bash] 
luther  235  0.0  0.0   836    0  tty4 SW 05:35 0:00 [rlogin] 
luther  236  0.0  0.0   836    0  tty4 SW 05:35 0:00 [rlogin] 
luther  303  0.0  1.9  1216  600  tty2  T 05:41 0:00 vi relazion 
luther  304  0.0  1.3  1120  428  tty2  T 05:41 0:00 backgammon 
luther  320  0.0  2.0  2164  628  tty2  R 05:48 0:00 ps xau 
luther  321  0.0  1.1   956  344  tty2  S 05:48 0:00 grep luther 



width

Questa cosa vi tornerà utile per sbarazzarvi di qualche programma che proprio non vuole collaborare. Se non siete riusciti a fermarlo in alcun modo, non vi resta che identificarlo e sparargli con un arma veramente pesante: il kill con l'opzione -9. Prendete bene la mira prima di tirare un colpo di questo calibro, perché sbagliare significa far fuori un innocente. L'informazione in fondo a destra è il nome del programma (completo di eventuali opzioni). Sulla seconda colonna da sinistra (a fianco del vostro nome) cè il PID. Dovrete riportarlo come argomento per kill.




width


$ kill -9 303 
$ ps xau | grep luther 
luther  210  0.0  1.7  1168  552 tty2 S  05:34 0:00 -bash 
luther  212  0.0  0.0  1168    0 tty4 SW 05:34 0:00 [bash] 
luther  235  0.0  0.0   836    0 tty4 SW 05:35 0:00 [rlogin] 
luther  236  0.0  0.0   836    0 tty4 SW 05:35 0:00 [rlogin] 
luther  304  0.0  1.3  1120  428 tty2  T 05:41 0:00 backgammon 
luther  320  0.0  2.0  2164  628 tty2 R  05:48 0:00 ps xau 
luther  321  0.0  1.1   956  344 tty2 S  05:48 0:00 grep luther 
[1]- Killed vi relazione 



width

Il processo 303 è stato spazzato via e non ne è rimasta più alcuna traccia. Notate che non è stato anteposto il % al numero del processo da far fuori, perché stavolta avete attaccato il vero PID (Process IDentification). Ora che vi siete finalmente liberati della noiosa relazione potete riprendere la partita a backgammon. Buon divertimento!


next up previous contents
Next: La respirazione bocca a Up: Il processo del lunedì. Previous: La distribuzione equa delle   Contents
angelo 2003-02-09