Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
62 C2 Puntiamo più in alto<br />
5.7 I processi e la loro gestione: kill,<br />
top, ps e uptime<br />
Unix è un sistema operativo multitasking. Questo significa che più programmi possono<br />
girare contemporaneamente sullo stesso computer. Ciascuno di questi programmi è<br />
definito processo. Il sistema operativo si incarica di ripartire le risorse della macchina<br />
tra i processi, facendone funzionare uno alla volta per un breve periodo in modo che<br />
ciascuno di essi avanzi di pari passo nell’esecuzione.<br />
Ciascun processo ha un codice di identificazione detto PID (Process IDentification).<br />
Usando il PID di un processo è possibile inviare a questo processo delle informazioni<br />
sotto forma di segnali. Ciascun segnale viene interpretato dal processo secondo la sua<br />
programmazione, ma alcuni di essi sono standard e si possono riassumere così:<br />
1 HUP 2 INT 3 QUIT 4 ILL 5 TRAP 6 ABRT 7 BUS<br />
8 FPE 9 KILL 10 USR1 11 SEGV 12 USR2 13 PIPE 14 ALRM<br />
15 TERM 16 STKFLT 17 CHLD 18 CONT 19 STOP 20 TSTP 21 TTIN<br />
22 TTOU 23 URG 24 XCPU 25 XFSZ 26 VTALRM 27 PROF 28 WINCH<br />
29 POLL 30 PWR 31 SYS<br />
Attenzione: i segnali variano notevolmente da Unix a Unix; quelli qui riportati sono<br />
quelli di Linux. Prima di usarli consultate man 7 signal oppure usate kill -l per<br />
ottenere un output analogo a quello qui sopra riportato.<br />
kill 5.7.1<br />
Il comando utilizzato per inviare segnali ad un processo è kill:<br />
$ kill [SEGNALE] PROCESSO [PROCESSO] [...]<br />
Nato per uccidere, kill è in realtà un comando generico che invia un qualsiasi segnale<br />
(e non solo il KILL) ad un numero arbitrario di processi.<br />
Commentiamo i tre segnali più utilizzati di frequente e che sono necessaria conoscenza<br />
anche del semplice utente:<br />
Segnale Numero Significato<br />
HUP 1 Informa il processo che la tty alla quale era collegato<br />
si è staccata.<br />
KILL 9 Termina il processo istantaneamente<br />
TERM 15 Chiede al processo di terminare secondo le sue<br />
procedure<br />
Tutti questi segnali hanno come effetto la terminazione del processo. KILL tuttavia ha<br />
la particolarità di non essere interpretabile dal processo che lo esegue e di non poter<br />
essere ignorato. In pratica un kill -11 (o kill -TERM) non comporta l’immediata<br />
cessazione del processo che può riservarsi tutto il tempo necessario a chiudere i file aperti,<br />
completare le sue procedure di terminazione e solo allora terminare. kill -9 invece<br />
comporta l’immediata cessazione del processo senza appello.<br />
kill -HUP ha invece la caratteristica di far ripartire il processo dopo la sua terminazione.<br />
Viene utilizzato da molti programmi come segnale per rileggere la configurazione<br />
dopo una modifica da parte dell’amministratore di sistema.