30 utili esempi di comandi "ps" per il monitoraggio dei processi Linux
ps (stato dei processi) è un'utilità nativa Unix/Linux per visualizzare informazioni riguardanti una selezione di processi in esecuzione su un sistema: legge queste informazioni dai file virtuali nella cartella/filesystem proc. È una delle utilità importanti per l'amministrazione del sistema, specificamente sotto il monitoraggio dei processi, per aiutarti a capire cosa sta succedendo in un sistema Linux.
Ha numerose opzioni per manipolare il suo output, tuttavia ne troverai un piccolo numero praticamente utili per l'uso quotidiano.
Leggi anche: Tutto quello che devi sapere sui processi in Linux [Guida completa]
In questo articolo esamineremo 30 esempi utili di comandi ps per monitorare i processi attivi in esecuzione su un sistema Linux.
Tieni presente che ps produce un output con una riga di intestazione, che rappresenta il significato di ciascuna colonna di informazioni. Puoi trovare il significato di tutte le etichette nella pagina man di ps.
Elenca tutti i processi nella shell corrente
1. Se esegui il comando ps senza argomenti, verranno 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 -A
OR
ps -e
3. Visualizza tutti i processi in formato BSD.
ps au
OR
ps axu
4. Per eseguire un elenco in formato completo, aggiungi il flag -f
o -F
.
ps -ef
OR
ps -eF
Visualizza i processi in esecuzione dell'utente
5. Puoi selezionare tutti i processi di tua proprietà (runner del comando ps, root in questo caso), digitare:
ps -x
6. Per visualizzare i processi di un utente in base all'ID utente reale (RUID) o al nome, utilizzare il flag -U
.
ps -fU tecmint
OR
ps -fu 1000
7. Per selezionare i processi di un utente in base all'ID utente effettivo (EUID) o al nome, utilizzare l'opzione -u
.
ps -fu tecmint
OR
ps -fu 1000
Stampa tutti i processi in esecuzione come root (ID reale ed effettivo)
8. Il comando seguente ti consente di visualizzare tutti i processi in esecuzione con privilegi utente root (ID reale ed effettivo) in formato utente.
ps -U root -u root
Visualizza processi di gruppo
9. Se desideri elencare tutti i processi di proprietà di un determinato gruppo (ID reale del gruppo (RGID) o nome), digita.
ps -fG apache
OR
ps -fG 48
10. Per elencare tutti i processi di proprietà del nome del gruppo (o della sessione) effettivo, digitare.
ps -fg apache
Visualizza i processi per PID e PPID
11. Puoi elencare i processi in base al PID come segue.
ps -fp 1178
12. Per selezionare il processo tramite PPID, digitare.
ps -f --ppid 1154
13. Effettua una selezione utilizzando un elenco PID.
ps -fp 2226,1154,1146
Visualizza processi tramite TTY
14. Per selezionare i processi tramite tty, utilizzare il flag -t come segue.
ps -t pts/0
ps -t pts/1
ps -ft tty1
Stampa albero del processo
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 sshd
OR
ps -ef --forest | grep -v grep | grep sshd
Discussioni del processo di stampa
17. Per stampare tutti i thread di un processo, utilizzare il flag -L
, questo mostrerà il LWP (processo leggero) e le colonne NLWP (numero di processi leggeri).
ps -fL -C httpd
Specificare 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 il PID, il PPID, il nome utente e il comando di un processo.
ps -eo pid,ppid,user,cmd
20. Di seguito è riportato un altro esempio di formato di output personalizzato che mostra il gruppo di file system, il valore nice, l'ora di inizio e il tempo trascorso di un processo.
ps -p 1154 -o pid,ppid,fgroup,ni,lstart,etime
21. Per trovare il nome di un processo utilizzando il suo PID.
ps -p 1154 -o comm=
Visualizza processi padre e figlio
22. Per selezionare un processo specifico in base al suo nome, utilizzare 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 necessitano di leggere i PID da un output o file std.
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.
Risolvere i problemi relativi alle prestazioni del sistema Linux
Se il tuo sistema non funziona come dovrebbe, ad esempio, se è insolitamente lento, puoi eseguire alcune operazioni di risoluzione dei problemi del sistema come segue.
26. Trova i processi più eseguiti in base al maggiore utilizzo di memoria e CPU in Linux.
ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | head
OR
ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%cpu | head
27. Per terminare processi/applicazioni Linux che non rispondono o qualsiasi processo che consuma molto tempo della CPU.
Innanzitutto, trova il PID del processo o dell'applicazione che non risponde.
ps -A | grep -i stress
Quindi utilizzare il comando kill per terminarlo immediatamente.
kill -9 2583 2584
Stampa informazioni di sicurezza
28. Mostra il contesto di sicurezza (specificamente per SELinux) in questo modo.
ps -eM
OR
ps --context
29. Con questo comando puoi anche visualizzare le informazioni sulla sicurezza in un formato definito dall'utente.
ps -eo euser,ruser,suser,fuser,f,comm,label
Esegui il monitoraggio del processo in tempo reale utilizzando Watch Utility
30. Infine, poiché ps visualizza informazioni statiche, è possibile utilizzare l'utilità 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 utilizzare strumenti come htop; top e sguardi: gli ultimi due sono infatti strumenti di monitoraggio delle prestazioni del sistema Linux.
Potrebbe interessarti 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 maggiore utilizzo di memoria e CPU in Linux
- Una guida ai comandi Kill, Pkill e Killall per terminare un processo in Linux
- Come trovare e uccidere i processi in esecuzione in Linux
- Come avviare il comando Linux in background e scollegare il processo nel terminale
È tutto per ora. Se hai qualche esempio utile di comando ps da condividere (senza dimenticare di spiegare cosa fa), usa il modulo dei commenti qui sotto.