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.

foreground o background? 63<br />

foreground o background? 5.7.2<br />

I processi hanno anche un’altra caratteristica: possono girare in foreground oppure in<br />

background. Il primo caso si ha quando un processo occupa una tty per il tempo della<br />

sua esecuzione. Il secondo quando un processo viene lanciato senza vincolare alcuna tty.<br />

Ad esempio, l’esecuzione del comando:<br />

$ ls<br />

corsoUnix.tex<br />

la_shell.tex<br />

piu_in_alto.tex<br />

regexpr.tex<br />

storia_Unix.tex<br />

$<br />

è avvenuta in foreground, occupando la tty alla quale ha restituito l’output per tutto<br />

il tempo di esecuzione. Nel caso di ls questo è semplicemente irrilevante, dato che il<br />

comando termina in una frazione di secondo. Ma un programma come una simulazione<br />

o un demone che provvede un particolare servizio, come un server http o ftp, girano<br />

decisamente meglio in background. Per lanciare un processo in background è sufficiente<br />

accodare una & (e commerciale) alla riga di comando. Ad esempio per chiamare il popolare<br />

browser netscape è possibile:<br />

$ netscape &<br />

[1] 687<br />

$<br />

La shell dalla quale abbiamo lanciato netscape ci ritorna subito il prompt e dopo<br />

qualche istante di caricamento appare la finestra di Netscape. Un metodo alternativo<br />

consiste nel lanciare un processo in foreground, interromperlo con un Control-Z e<br />

mandarlo in background con il comando bg:<br />

$ netscape<br />

^Z<br />

[1]+ Stopped netscape<br />

$ bg<br />

$<br />

La notazione ^Z indica la pressione contemporanea del tasto Control e del tasto z.<br />

Le shell 9 offrono una gestione avanzata del -ground dei processi. Quando abbiamo<br />

lanciato netscape in background, la shell ci ha stampato un breve rapporto sul processo,<br />

includendo un numero fra parentesi quadre. Questo numero costituisce una più confortevole<br />

sistema rispetto al PID per gestire i processi. Precedendo questo numero con<br />

il simbolo % è possibile riferirsi a quel processo. Se ad esempio avessimo lanciato due<br />

processi in background come in:<br />

9<br />

Solo quelle più moderne, ossia più recenti del 1990

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

Saved successfully!

Ooh no, something went wrong!