9.2. Gestire i processi

Di tanto in tanto vorrete poter vedere i processi che stanno girando su Linux. Per avere una lista di tali processi, digitate "ps -aux" e apparirà qualcosa del genere.

USER       PID %CPU %MEM  SIZE   RSS TTY STAT START   TIME COMMAND
bin         69  0.0  1.0   788   320  ?  S   Nov 30   0:00 /usr/sbin/rpc.portmap
frampton 10273  0.0  2.1  1136   664  p0 S    14:12   0:00 -bash
frampton 10744  0.0  1.1   820   360  p0 R    17:25   0:00 ps -aux
frampton 10745  0.0  0.8   788   264  p0 S    17:25   0:00 more
nobody   10132  0.0  1.8  1016   588  ?  S    13:36   0:00 httpd
nobody   10133  0.0  1.8   988   568  ?  S    13:36   0:00 httpd
nobody   10413  0.0  1.8  1012   580  ?  S    14:56   0:00 httpd
nobody   10416  0.0  1.8  1012   580  ?  S    14:56   0:00 httpd
nobody   10418  0.0  1.8  1012   588  ?  S    14:57   0:00 httpd
nobody   10488  0.0  1.7   976   556  ?  S    15:34   0:00 httpd
nobody   10564  0.0  1.8   988   564  ?  S    16:06   0:00 httpd
nobody   10600  0.0  1.8   988   564  ?  S    16:15   0:00 httpd
nobody   10670  0.0  1.8   988   568  ?  S    16:45   0:00 httpd
nobody   10704  0.0  1.7   976   552  ?  S    17:03   0:00 httpd
root         1  0.0  1.0   776   312  ?  S   Nov 30   1:13 init [3]
root         2  0.0  0.0     0     0  ?  SW  Nov 30   0:00 (kflushd)
root         3  0.0  0.0     0     0  ?  SW  Nov 30   0:00 (kswapd)

La lista mostra il proprietario del processo ("nobody" per servizi speciale come il web server, il numero di identificazione del processo, la % di CPU che il processo sta attualmente utilizzando, la % di memoria consumata, e altre informazioni correlate oltre ad un descrizione del compito stesso.

Per aver maggiori informazioni su un certo processo, digitate "ps pid" (dove "pid" è il numero di identificazioni del processo). Nell'esempio, "ps 10704" mostrerà:

10704  ?  S     0:00 /usr/local/etc/httpd/httpd

Questo particolare processo è un web server (il web server Apache apparirà più volte nella lista dei processi; sul perché si veda la Sezione 7.1).

Se notate che un servizio non sta funzionando, potete usare "kill -HUP pid" (dove "pid" è il numero di identificazione del processo come mostrato nella lista ottenuta con "ps"). Per esempio, se i servizi Internet (un processo chiamato inetd, #123 nel nostro esempio) non stanno funzionando come dovrebbero, un "kill -HUP 123" (o meglio, usate il comando "killall" e poi specificate il nome del processo: "killall -HUP inetd") dovrebbe far ripartire il processo. L'opzione -HUP del comando kill significa "hang up" (fermare l'attività, n.d.t.); il processo dovrebbe ricaricarsi.

Se non riuscite a risolvere il problema, arrestate il sistema e rifate il boot (si veda la Sezione 6.7 per maggiori informazioni).

Potreste avere la necessità di sospendere temporaneamente un processo, per poi riattivarlo più tardi. Per esempio, nel caso dobbiate masterizzare un CD. Poiché le periferiche IDE fanno molto uso della CPU, se essa è troppo occupata potreste ritrovarvi con un bel sottobicchiere invece del vostro CD! Questi due comandi servono,rispettivamente, a sospendere e a riprendere un processo.

kill -STOP 945
kill -CONT 945

Red hat offre una soluzione migliore per fermare e riavviare alcuni processi. Ne parleremo nella Sezione 9.3