Non appena il sistema interpreta un comando, per la sua esecuzione viene creato un processo indipendente dotato di un numero di identificazione (PID) esclusivo. Il sistema utilizza il PID per tenere traccia dello stato corrente di ogni processo.
Il comando ps permette di visualizzare i processi in corso di esecuzione. Oltre a visualizzare il numero di identificazione del processo (PID) per tutti i processi di proprietà dall'utente (cioè creati in seguito a un comando digitato dall'utente), ps indica anche il terminale dal quale il processo è stato avviato (TTY), il tempo della cpu utilizzato fino a quel momento (TIME) e il comando in corso di esecuzione (COMMAND).
Aggiungendo l'opzione -l al comando ps, il sistema visualizza una serie di altre informazioni relative ai processi correntemente attivi, tra cui lo stato di tutti i processi (elencati sotto S). I codici utilizzati per l'indicazione degli stati sono i seguenti:
O - Il processo è attivo su un processore.
S - Sleeping: il processo sta attendendo la conclusione di un evento.
Z - Stato Zombie: il processo è terminato e il processo padre non è in attesa.
T - Traced: il processo è stato interrotto da un segnale perché il processo padre sta eseguendo un trace su di esso.
X - Stato SXBRK: il processo attende che si renda disponibile una maggiore quantità di memoria centrale.
È importante ricordare che durante l'esecuzione di ps lo stato dei processi può cambiare. Poiché il comando ps fornisce solo uno spaccato di ciò che accade in un determinato momento, le informazioni visualizzate valgono solo per l'istante successivo all'invio del comando. Di conseguenza, l'output di ps potrebbe non essere perfettamente aggiornato.
Il comando ps(1) dispone di altre opzioni non trattate in questo paragrafo. Per informazioni più approfondite, vedere man Pages(1): User Commands.
Il comando kill permette di interrompere in modo diretto un processo in esecuzione. Questo risulta particolarmente utile quando si avvia per errore un comando che comporta un certo tempo di esecuzione.
Per interrompere un processo:
Digitare ps per visualizzare il PID del processo.
Digitare kill seguito dal PID del processo.
L'esempio seguente illustra la procedura da seguire:
$ ps PID TTY TIME COMMAND 1291 co 0:12 -bin/csh (csh) 3250 p0 0:00 ps 1286 p1 0:05 -bin/csh (csh) 3248 p1 0:05 vi commands $ kill 1291 [1} Terminated -bin/csh/ (csh) $ |
Un metodo più rapido per determinare il PID del processo consiste nell'inviare l'output di ps al comando grep utilizzando il simbolo di pipe. Ad esempio:
$ ps | grep nomecomando |
dove nomecomando è il nome del processo che si desidera interrompere.
Per interrompere forzatamente un processo, usare il comando ps con l'opzione -9 nella forma seguente:
$ kill -9 nPID |
dove nPID è il numero di identificazione del processo che si desidera interrompere.