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