GESTIONE DEI PROCESSI

Precedente
Programma
Seguente
Bastard Operator From Hell!
kill -l
  Visualizza l'elenco dei segnali che si possono mandare ad un processo
Kill -9 213
  Forza l'eliminazione del processo con PID 213
(eliminazione senza scampo!!)
Tips & Tricks

Con il comando Kill -l visualizza l'elenco dei segnali che potete mandare ad un processo. Ogni segnale è identificato anche da un numero univoco che può essere utilizzato al posto del nome del segnale da mandare al processo. Es
kill -9 213 = kill -SIGKILL 213

E' possibile far eseguire un comando direttamente in background aggiungendo alla linea di comando il carattere & Es: analog /var/log/httpd/access_log &

E' possibile utilizzare la stessa linea di comando per eseguire più comandi, suddividendo i vari comandi dalla virgola. Es ./configure; make; make install

Segnali

Per gestire un processo è possibile inviargli diversi segnali con diverse funzioni.
Il segnale più comune è il SIGKILL (9) che chiude brutalmente un processo (può essere necessario quando il processo è bloccato), una alternativa più soft è SIGTERM (15). Un segnale comunemente usato quando si deve far fare una log rotation o ricaricare i file di configurazione di un server è SIGHUP (1).
Alcuni segnali (es: SIGUSR) possono essere customizzati dagli sviluppatori ed usati per dare particolari direttive ad un programma in esecuzione (per esempio aumentare il livello di debugging).

Comandi di gestione dei processi
kill -[signal] pid Principalmente utilizzato per "uccidere" o meglio terminare (SIGKILL) un processo, ma può essere utilizzato per mandare qualsiasi segnale.
killall [opzioni] nome Termina (di default) o invia il segnale specificato tutti i processi con il nome indicato.
CTRL + z
bg <process number>
fg <process number>
jobs
La combinazione di tasti CTRL+z interrompe momentaneamente il processo in esecuzione (dalla shell corrent). Per ripristinarlo si devono usare i comandi bg e fg. Il primo fa eseguire il comando in background ed il secondo fa eseguire il comando in foreground.
La shell assegna un ID ad ogni job corrente (processo aperto dall'utente) e prevede diversi comandi (fg, bg, jobs, stop...) per gestirli.
nohup <command>

Si può utilizzare prima di qualsiasi per evitare che il processo determinato dal comando non cada al segnale SIGHUP. E' utile quando si lavora su macchine remote e si devono eseguire comandi che possono durare a lungo. Evita l'interruzione del processo quando per problemi di rete o normale operatività ci si sconnette dalla sessione remota (via telnet o ssh). Lo standard error e tutti gli output che verrebbero stampati a schermo vengono scritti sul file nohup.out

nice <priority> <command> E' un prefisso utilizzato per assegnare un certo livello di priorità al comando che si sta per eseguire. -20 vuol dire massima priorità, 19 è minima priorità.
WEB RESOURCES
http://www.linux-mag.com/2000-02/compile_01.html Signals and their uses - Un elenco completo dei segnali su Linux