30 Esempi utili di “comandi ps” per il monitoraggio dei processi Linux
ps (stato dei processi) è un’utilità Unix / Linux nativa per visualizzare le informazioni relative a una selezione dei processi in esecuzione su un sistema: legge queste informazioni dai file virtuali nel filesystem / proc. È una delle utilità importanti per l’amministrazione del sistema specificamente sotto il monitoraggio dei processi, per aiutarti a capire cosa sta succedendo su un sistema Linux.
Ha numerose opzioni per manipolare il suo output, tuttavia troverai un piccolo numero di loro praticamente utili per l’uso quotidiano.
Leggi anche: Tutto quello che devi sapere sui processi in Linux
In questo articolo vedremo 30 utili esempi di comandi ps per monitorare i processi attivi in esecuzione su un sistema Linux.
Nota che ps produce un output con una riga di intestazione, che rappresenta il significato di ogni colonna di informazioni, puoi trovare il significato di tutte le etichette in ps man pagina.
Elenca tutti i processi nella shell corrente
1. Se esegui il comando ps senza argomenti, vengono visualizzati i processi per la shell corrente.
$ ps
Stampa tutti i processi in diversi formati
2. Visualizza tutti i processi attivi su un sistema Linux in formato generico (Unix / Linux).
$ ps -AOR$ ps -e
3. Visualizza tutti i processi in formato BSD.
$ ps auOR$ ps axu
4. Per eseguire un elenco in formato completo, aggiungi il flag -f
o -F
.
$ ps -efOR$ ps -eF
Visualizza processi in esecuzione utente
5. Puoi selezionare tutti i processi di tua proprietà (runner del comando ps, root in questo caso), digita:
$ ps -x
6. Per visualizzare i processi di un utente in base all’ID utente reale (RUID) o al nome, utilizza il -U
flag.
$ ps -fU tecmintOR$ ps -fu 1000
7. Per selezionare i processi di un utente in base all’ID utente effettivo (EUID) o al nome, utilizza l’opzione -u
.
$ ps -fu tecmintOR$ ps -fu 1000
Stampa tutti i processi in esecuzione come root (ID reale ed effettivo)
8. Il comando seguente consente di visualizzare tutti i processi in esecuzione con i privilegi di utente root (& ID effettivo) nel formato utente.
$ ps -U root -u root
Processi del gruppo di visualizzazione
9. Se desideri elencare tutti i processi di proprietà di un determinato gruppo (ID gruppo reale (RGID) o nome), digita.
$ ps -fG apacheOR$ ps -fG 48
10. Per elencare tutti i processi di proprietà del nome effettivo del gruppo (o sessione), digitare.
$ ps -fg apache
Visualizza processi per PID e PPID
11. Puoi elencare i processi in base al PID come segue.
$ ps -fp 1178
12. Per selezionare il processo in base al PPID, digita.
$ ps -f --ppid 1154
13. Effettua la selezione utilizzando l’elenco PID.
$ ps -fp 2226,1154,1146
Visualizza processi tramite TTY
14. Per selezionare i processi in base a tty, utilizza il flag -t come segue.
$ ps -t pst/0$ ps -t pst/1$ ps -ft tty1
Albero processo di stampa
15. Un albero dei processi mostra come i processi sul sistema sono collegati tra loro; i processi i cui genitori sono stati uccisi vengono adottati da init (o systemd).
$ ps -e --forest
16. Puoi anche stampare un albero dei processi per un dato processo come questo.
$ ps -f --forest -C sshdOR$ ps -ef --forest | grep -v grep | grep sshd
Stampa thread di processo
17. Per stampare tutti i thread di un processo, utilizza il flag -H
, questo mostrerà le colonne LWP (processo leggero) e NLWP (numero di processo leggero).
$ ps -fL -C httpd
Specifica il formato di output personalizzato
Utilizzando le opzioni -o o –format, ps ti consente di creare formati di output definiti dall’utente come mostrato di seguito.
18. Per elencare tutti gli identificatori di formato, includi il flag L
.
$ ps L
19. Il comando seguente consente di visualizzare PID, PPID, nome utente e comando di un processo.
$ ps -eo pid,ppid,user,cmd
20. Di seguito è riportato un altro esempio di un formato di output personalizzato che mostra il gruppo del file system, il valore corretto, l’ora di inizio e il tempo trascorso di un processo.
$ ps -p 1154 -o pid,ppid,fgroup,ni,lstart,etime
21. Per trovare un nome di processo utilizzando il suo PID.
$ ps -p 1154 -o comm=
Visualizza processi padre e figlio
22. Per selezionare un processo specifico con il suo nome, utilizza il flag -C, questo mostrerà anche tutti i suoi processi figli.
$ ps -C sshd
23. Trova tutti i PID di tutte le istanze di un processo, utile quando si scrivono script che devono leggere i PID da un file o output standard.
$ ps -C httpd -o pid=
24. Controlla il tempo di esecuzione di un processo.
$ ps -eo comm,etime,user | grep httpd
L’output seguente mostra che il servizio HTTPD è in esecuzione da 1 ora, 48 minuti e 17 secondi.
Risoluzione dei problemi Prestazioni del sistema Linux
Se il tuo sistema non funziona come dovrebbe, ad esempio se è insolitamente lento, puoi eseguire alcuni problemi di sistema come segue.
26. Trova i principali processi in esecuzione in base al massimo utilizzo di memoria e CPU in Linux.
$ ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | headOR$ ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%cpu | head
27. Per terminare un processo Linux / applicazioni che non rispondono o qualsiasi processo che consuma molto tempo CPU.
Innanzitutto, trova il PID del processo o dell’applicazione che non risponde.
$ ps -A | grep -i stress
Quindi utilizza il comando kill per terminarlo immediatamente.
$ kill -9 2583 2584
Stampa informazioni sulla sicurezza
28. Mostra il contesto di sicurezza (in particolare per SELinux) in questo modo.
$ ps -eMOR$ ps --context
29. Puoi anche visualizzare le informazioni sulla sicurezza nel formato definito dall’utente con questo comando.
$ ps -eo euser,ruser,suser,fuser,f,comm,label
Esegui il monitoraggio del processo in tempo reale utilizzando Watch Utility
30. Infine, poiché ps mostra informazioni statiche, puoi utilizzare l’utility watch per eseguire il monitoraggio del processo in tempo reale con output ripetitivo, visualizzato dopo ogni secondo come nel comando seguente (specifica un comando ps personalizzato per raggiungere il tuo obiettivo).
$ watch -n 1 "ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | head"
Importante: ps mostra solo informazioni statiche, per visualizzare l’output aggiornato di frequente puoi usare strumenti come htop; in alto e sguardi: gli ultimi due sono in effetti uno strumento di monitoraggio delle prestazioni del sistema Linux.
Potresti anche leggere i seguenti articoli correlati.
- Come trovare un nome di processo utilizzando il numero PID in Linux
- Trova i principali processi in esecuzione in base al massimo utilizzo di memoria e CPU in Linux
- Una guida per Comandi Kill, Pkill e Killall per terminare un processo in Linux
- Come trovare e terminare i processi in esecuzione in Linux
- Come avviare il comando Linux in background e scollegare il processo nel terminale