[>a2388.html>] [<a2386.html<] [^a2.html^]


Capitolo 302.   Processi ed utilizzo delle risorse del sistema

302.1   Improvviso aumento dell'attività del disco rigido e rallentamento del sistema

Ultimamente ho avuto un problema: stavo comodamente girando per il web quando ad un tratto il disco rigido ha cominciato a rumoreggiare incessantemente. Il sistema era talmente lento che ho dovuto riavviare. Cosa succede?

---------

È il demone cron, bastava aspettare del tempo. Tra i comandi più lunghi che cron esegue ti cito solo updatedb e e2fsck. Capisci quindi perché il sistema rallenta così tanto. Per modificare i comandi di cron è sufficiente modificare /etc/crontab (man crontab per la sintassi). Non è indicato disattivare cron del tutto, perché esso attiva delle procedure necessarie per il buon funzionamento del sistema (come ad esempio la rotazione dei file di log).

302.2   Stato della macchina

Come faccio a vedere sulla mia macchina come sono messe le risorse? Vale a dire memoria libera e utilizzo del processore? Solo da console non da X.

---------

top, free (memoria) , tload (media di carico)

/proc/meminfo

/proc/loadavg

/proc/swaps

302.3   Risorse macchina

Come faccio a vedere sulla mia macchina come sono messe le risorse in termini di memoria libera e utilizzo cpu?

---------

Con il comando:

$ vmstat[Invio]

302.4   Quanta memoria e quante risorse sta usando un processo?

Come faccio a sapere quanta memoria occupa un processo?

---------

Con top si può vedere quali e quante sono le risorse occupate da un processo (memoria, processore, ...).

302.5   Fork

Cos'è fork? Ha a che fare con i processi?

---------

È la duplicazione di un processo e ciò esita con la creazione di un figlio. Tale figlio in genere ha le stesse proprietà del padre. Un processo così può rispondere contemporaneamente a più richieste di servizi, oppure può portare avanti in parallelo diversi compiti.

302.6   Visualizzazione programmi in esecuzione e loro arresto

Come faccio a sapere quali programmi sono in esecuzione ed eventualmente come faccio a terminarne l'esecuzione di alcuni?

---------

Per visualizzare:

# ps[Invio]

Per uccidere (concludere):

# kill NUMERO[Invio]

(dove numero è il numero del processo che si vuole concludere, identificabile con ps).

302.7   PID dei processi

Come posso sapere il PID di un processo per metterlo in uno script?

---------

Con ps vengono elencati tutti i processi con i loro PID. Per alcuni processi dentro /var/run esistono i file processo.pid che contengono il numero del PID e, a volte, la riga di comando con cui il processo è stato attivato; ad esempio il file sendmail.pid può risultare:

174
/usr/sbin/sendmail -bd -q10m

Per cui nella programmazione di script shell li posso utilizzare per arrestare un processo.

Ad esempio se volessi interrompere il processo 'Apache' potremmo creare uno script che contiene:

#!/bin/csh
#mette il pid di apache in una variabile
set MYVAR = `more /var/run/httpd.pid`
echo "Il PID di Apache è : $MYVAR"
echo "Sto per eseguire il comando: kill -9 $MYVAR"
# Uccide il demone
kill -9 $MYVAR

ora la spiegazione:

Per la shell bash:

#!/bin/sh
#mette il pid di apache in una variabile
MYVAR = `more /var/run/httpd.pid`
echo "Il PID di Apache è : $MYVAR"
echo "Sto per eseguire il comando: kill -9 $MYVAR"
# Uccide il demone
kill -9 $MYVAR

302.8   Sapere il pid di quale processo tiene occupato un dispositivo

Come si fa a sapere il pid del processo che tiene occupato un dispositivo?

---------

# fuser -m /dev/???[Invio]

se risulta essere bash o chi per lei, allora il dispositivo è occupato perché si è nella directory montata o in una delle sue sottodirectory.

302.9   Terminare un'applicazione bloccata

Come si fa a terminare un applicazione bloccata?

---------

Dobbiamo ucciderne il processo:

# kill -9 pid[Invio]

(pid è il Process ID del processo bloccato, ottenibile con ps)

LDR --- Copyright © 1999-2000 Gaetano Paolone --  bigpaul @ pluto.linux.it

[>a2388.html>] [<a2386.html<] [^a2.html^]