next up previous contents
Next: interruzione di processi e Up: processi e loro interruzione Previous: processi e loro interruzione   Contents

processi e job

Ogni comando che viene eseguito sulla macchina viene detto processo e ad esso è assegnato un numero d'ordine unico.

Per vedere tutti i processi, dare il comando ps. Esempio:

$ ps 
  PID TTY          TIME CMD 
17686 pts/3    00:00:00 tcsh 
18829 pts/3    00:00:00 ps
Una successione di uno o più processi lanciati con un unico comando (ad esempio, una pipeline) viene detta job. In particolare, se il job è eseguito in background ad esso è assegnato un numero d'ordine, che è unico per una sessione di shell (p. es. un terminale). Il numero del job viene scritto tra parentesi quadre sul terminale al momento che esso è lanciato. Es:

$ emacs &
[1] 10301
Il secondo numero che viene scritto è il numero di processo dell'ultimo processo del job.

Per vedere su terminale la lista di tutti i job, dare il comando jobs 

$ find /usr -mtime -7 | sort &
[2] 10334
$ jobs
[1]- Running       emacs
[2]+ Running       find /usr -mtime -7 | sort &

Il comando find /usr -mtime -7 cerca in /usr e nelle sue sottodirectory tutti i file modificati negli ultimi 7 giorni; l'output viene poi filtrato da sort, cioè i file sono ordinati in ordine alfabetico. L'esplorazione del disco in genere richiede un po' di tempo, perciò è utile mandare questa pipeline in background.

Notare che ad ogni comando del job 2 (find e sort) viene assegnato un distinto numero di processo:

$ ps
10284 pts/0 00:00:00 bash
10301 pts/0 00:00:00 emacs
10333 pts/0 00:00:00 find
10334 pts/0 00:00:00 sort
10335 pts/0 00:00:00 ps


next up previous contents
Next: interruzione di processi e Up: processi e loro interruzione Previous: processi e loro interruzione   Contents
Giorgio F. Signorini 2011-11-14