28.05.2013 Views

LOA HackLab - Autistici

LOA HackLab - Autistici

LOA HackLab - Autistici

SHOW MORE
SHOW LESS

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.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!