Next: La respirazione bocca a
Up: Il processo del lunedì.
Previous: La distribuzione equa delle
  Contents
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: La respirazione bocca a
Up: Il processo del lunedì.
Previous: La distribuzione equa delle
  Contents
angelo
2003-02-09