LinuxSistema Operativo

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.