Come usare il comando ps su Linux per monitorare i processi

17 set 2024 3 min di lettura
Come usare il comando ps su Linux per monitorare i processi
Indice dei contenuti

Introduzione

Il comando ps è uno degli strumenti più utili per monitorare i processi in esecuzione su un sistema Linux. Con ps, puoi ottenere una panoramica dettagliata dei processi attivi, comprese le informazioni come l'ID del processo (PID), l'utente proprietario, l'utilizzo della CPU e della memoria, e molto altro. Questo tutorial ti guiderà attraverso l'uso di ps per monitorare e gestire i processi sul tuo sistema Linux.

Cos'è il comando ps?

Il comando ps è l'abbreviazione di "process status". È un comando di sistema che fornisce una rappresentazione statica dei processi attualmente in esecuzione. A differenza di altri strumenti come top o htop, ps non fornisce un'interfaccia interattiva, ma restituisce un'istantanea dei processi al momento in cui viene eseguito.

Installazione di ps

Il comando ps è incluso di default in quasi tutte le distribuzioni Linux, quindi non dovresti aver bisogno di installarlo. Tuttavia, se per qualche motivo non è disponibile, puoi installarlo utilizzando il gestore di pacchetti della tua distribuzione.

Su Debian/Ubuntu:

sudo apt-get install procps

Su CentOS/Fedora:

sudo yum install procps

Utilizzo di base di ps

Per ottenere una lista di tutti i processi attivi sul sistema, puoi utilizzare il comando ps senza alcuna opzione:

ps

Questo comando restituirà una lista di processi associati all'utente che ha eseguito il comando. La lista sarà limitata e non fornirà molte informazioni.

Esempio di output:

 PID TTY          TIME CMD
 1234 pts/0    00:00:00 bash
 5678 pts/0    00:00:00 ps

Opzioni comuni di ps

Per ottenere informazioni più dettagliate sui processi, puoi utilizzare diverse opzioni con il comando ps. Di seguito sono riportate alcune delle opzioni più comuni.

ps aux

L'opzione aux è una delle più utilizzate. Mostra tutti i processi del sistema, indipendentemente dalla sessione a cui appartengono, e include informazioni dettagliate come l'utilizzo della CPU e della memoria.

ps aux

Esempio di output:

USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.1  19352  1540 ?        Ss   09:00   0:00 /sbin/init
root         2  0.0  0.0      0     0 ?        S    09:00   0:00 [kthreadd]
root         3  0.0  0.0      0     0 ?        I<   09:00   0:00 [rcu_gp]

ps -ef

L'opzione -ef è un'altra opzione comune che mostra tutti i processi in un formato esteso. Include informazioni come l'ID del processo padre (PPID) e il tempo di avvio del processo.

ps -ef

Esempio di output:

UID        PID  PPID  C STIME TTY          TIME CMD
root         1     0  0 09:00 ?        00:00:00 /sbin/init
root         2     0  0 09:00 ?        00:00:00 [kthreadd]
root         3     2  0 09:00 ?        00:00:00 [rcu_gp]

Filtrare i processi con grep

Puoi combinare ps con il comando grep per filtrare i processi in base a una determinata stringa. Ad esempio, per trovare tutti i processi associati a un programma specifico, come firefox, puoi usare:

ps aux | grep firefox

Esempio di output:

user      1234  0.5  2.3 253428 47232 ?        Sl   09:00   0:01 /usr/lib/firefox/firefox
user      5678  0.0  0.0  14228  1024 pts/0    S+   09:05   0:00 grep --color=auto firefox

Ordinare i processi per utilizzo della CPU o della memoria

Puoi anche ordinare i processi in base all'utilizzo della CPU o della memoria utilizzando il comando ps combinato con sort. Ad esempio, per ordinare i processi in base all'utilizzo della CPU in ordine decrescente:

ps aux --sort=-%cpu

Esempio di output:

USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
user      1234  5.2  2.3 253428 47232 ?        Sl   09:00   0:05 /usr/lib/firefox/firefox
user      5678  0.5  1.2 123456 24568 ?        S    09:00   0:02 /usr/bin/some_program

Visualizzare i processi di un utente specifico

Se vuoi visualizzare solo i processi di un utente specifico, puoi usare l'opzione -u seguita dal nome dell'utente. Ad esempio, per visualizzare i processi dell'utente john:

ps -u john

Esempio di output:

PID TTY          TIME CMD
1234 pts/0    00:00:00 bash
5678 pts/0    00:00:00 firefox

Terminare un processo

Se hai identificato un processo che desideri terminare, puoi farlo utilizzando il comando kill. Per terminare un processo, devi conoscere il suo PID. Ad esempio, per terminare un processo con PID 1234:

kill 1234

Se il processo non si interrompe con un semplice kill, puoi forzarne la terminazione utilizzando il segnale -9:

kill -9 1234

Conclusione

Il comando ps è uno strumento essenziale per monitorare e gestire i processi su un sistema Linux. Con le opzioni e le tecniche descritte in questo tutorial, dovresti essere in grado di ottenere una panoramica dettagliata dei processi attivi, filtrare i processi in base a criteri specifici e gestire i processi in modo efficace. Sperimenta con le diverse opzioni e combinazioni per adattare ps alle tue esigenze specifiche.

Support us with a

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.