[>a2388.html>] [<a2386.html<] [^a2.html^]
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).
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
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]
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, ...).
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.
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).
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:
La prima riga (#!/bin/csh) dice allo script quale interprete/linguaggio/shell usare.
Tutte le altre righe con il # iniziale sono commenti;
il set serve per inizializzare/dichiarare/impostare una variabile, nota che in `more /var/run/httpd.pid`, il segno ` [nota che questo simbolo non è né l'apostrofo né le doppie virgolette] è importantissimo perché fa eseguire come comando di sistema tutto ciò che vi è racchiuso;
con l'echo si visualizza il risultato sullo schermo;
l'ultima riga rappresenta l'uccisione del processo.
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
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.
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