Per vedere i processi attivi vi sono almeno due comodi comandi:
Ogni processo è identificato da un pid, ossia da un numero intero.
I processi che vengono lanciati da una shell possono essere eseguiti in due diverse modalità:
Perché un processo giri in background è sufficiente che il comando che lo lancia sia seguito da una "e commerciale" (&). A un processo in background viene assegnato un job identificato da un numero (visualizzato tra parentesi quadre) da non confondere col pid.
Un processo in foreground può essere sospeso premendo Ctrl-Z sulla shell da cui è stato avviato. Quando un processo viene sospeso, appare una linea di testo sulla console con un numero intero tra parentesi quadre che rappresenta il numero di job assegnato al processo sospeso.
Un processo sospeso può essere riattivato:
il comando jobs mostra tutti i jobs (attivi o sospesi) della shell (NB: la lista dei jobs è locale alla shell, mentre la lista dei processi visibile con ps o top è globale su tutta la macchina).
Per forzare la conclusione di un processo si può usare il comando kill seguito dal pid oppure dall'identificativo di job preceduto dal segno di percentuale.
In realtà il comando kill serve in generale a mandare un
segnale a un processo; il meccanismo dei segnali serve nei sistemi
UNIX per consentire ai processi di comunicare tra di loro (per vedere una lista
dei segnali, si può consultare per esempio man kill).
I segnali sono identificati da numeri interi e da nomi simbolici, il comando
kill -n p manda il segnale n
(numerico) al processo identificato dal pid p.
Di default il comando kill invia il segnale TERM (15)
che è un segnale di terminazione "gentile", ossia può essere
ignorato dal processo ricevente: se si vuole dare una certa
terminazione al processo è necessario inviargli il segnale KILL
(9).