I processi
Quando un file eseguibile, programma, viene lanciato e caricato in memoria viene chiamato processo. Ogni processo avrà il suo numero univoco pid (process id).
Possiamo distinguere i processi in:
- utente – lanciato in modo esplicito dall’utente;
- sistema – detti anchew demoni sono avviati dal sistema in background per fornire servizi;
Ogni processo può lanciare altri processi child, questi processi avranno un PPID (parent process id) che indica quale è il processo genitore.
Anche l’utente può lanciare dei processi in background quando non si ha nessuna iterazione con l’utente, basta digitare il comando e terminarlo con &.
Possiamo bloccare un processo con la pressione del tasto CTRL e z, possiamo anche riprenderlo con il comando bg (background) seguito dal numero del processo indicato quando è stato bloccato. Se vogliamo riprendere il processo in primo piano e non in background utilizziamo il comando fg (foreground).
Possiamo visualizzare i processi con il comando ps, senza parametri visualizza un elenco sintetico dei processi dell’utente oppure:
- ax – mostra tutti i processi;
- aux – nell’elenco mette anche la user a cui appartengono;
Utilizzando il pipeline | less possiamo scorrere i processi, mentre con | grep visualizziamo determinati processi.
Se necessitiamo di un elenco dinamico utilizziamo il comando top che prevede alcuni comandi premendo i seguenti tasti:
- k – ferma il processo;
- n – mostra il numero dei processi visualizzatisulla base di una cifra specificata;
- u – ordina l’elenco per utente;
- P – ordina l’elenco per quantità di CPU utilizzata;
- M – ordina l’elenco per quantità di memoria impiegata;
- spazio – aggiorna l’elenco;
- q – esce da top;
Il processo rimane in vita sino a quando non ha concluso il suo lavoro, oppure non viene terminato dall’utente. Il comando è kill, ma puo’ anche inviare diversi segnali ai processi:
- SIGHUP serve per riavviare un processo ricaricando il file di configurazione;
- SIGQUIT serve per inviare una richiesta di uscita;
- SIGTERM una richiesta di terminazione soft;
- SIGKILL una richiesta brutale di terminazione, se non si riesce con i precedenti comandi;
Dopo il comando kill bisogna indicare il numero di comando da inviare e il PID.