28.05.2013 Views

LOA HackLab - Autistici

LOA HackLab - Autistici

LOA HackLab - Autistici

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Input e Output, Redirezione, Cilindri, Conigli Bianchi... 43<br />

4.3 Controllo dei processi<br />

La gestione dei processi nella shell presenta alcuni vantaggi rispetto a quella basata solo<br />

sui tool di sistema. Per ogni processo lanciato in background la shell tiene traccia del PID<br />

e lo collega ad uno speciale simbolo che inizia con un percento (%) seguito da un numero<br />

progressivo. Vediamo un esempio:<br />

$ updatedb &<br />

[1] 1711<br />

$ tar cf /tmp/inutile.tar *<br />

[2] 1713<br />

$ kill %1<br />

[1]- Done updatedb<br />

$<br />

Come avrete capito, lanciando un processo in background la shell fornisce prima il<br />

progressivo del processo e di seguito il PID. Il progressivo può essere usato per operare<br />

sul processo da dentro la shell. Il kill che abbiamo impiegato nell’esempio non è<br />

evidentemente quello di sistema. Si tratta di un comando builtin nella shell, differente<br />

rispetto a /bin/kill, in grado di accettare i progressivi dei processi.<br />

È possibile interrompere un processo che sta girando in “foreground” con la pressione<br />

dei tasti Control e c insieme. Per sospendere l’esecuzione (senza terminarla) di un<br />

processo in foreground si usa invece la combinazione Control-z. Una volta sospeso<br />

un processo è possibile riportarlo in esecuzione in foreground con il comando fg o in<br />

background con il comando bg.<br />

Per avere un elenco dei processi che stanno girando in background utilizzate il<br />

comando jobs.<br />

$ jobs<br />

[1]+ Running xdvi corsounix &<br />

$<br />

Nel nostro esempio esiste un solo “task” in background (quindi numerato 1) attualmente<br />

in corso (Running, quindi non sospeso con un Control-z) che sta eseguendo il<br />

comando ‘‘xdvi corsounix &’’ 2 .<br />

Input e Output, Redirezione, Cilindri, Conigli Bianchi... 4.3.1<br />

È possibile “redirigere” l’output della shell e l’input verso la shell per e da differenti fonti.<br />

È anche possibile concatenare più comandi fra di loro con un meccanismo detto “piping”<br />

2 La presenza della “e commerciale” in fine riga è una conferma del fatto che il processo gira<br />

in background

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

Saved successfully!

Ooh no, something went wrong!