Il comando ps richiama la tabella dei processi, un record che riassume i processi attualmente in esecuzione su un sistema. Quando il comando viene eseguito senza alcuna opzione, visualizza i processi eseguiti dalla shell corrente con dettagli come il PID, il terminale associato al processo, il tempo CPU accumulato e il comando che ha avviato il processo. Tuttavia, insieme al comando possono essere utilizzate diverse opzioni per filtrare i campi oi processi visualizzati.
Sintassi
La sintassi del comando ps è:
$ ps [options]
Stili di sintassi delle opzioni di comando
Il comando ps supporta tre diversi stili di sintassi delle opzioni di comando:stile Unix (preceduto da un trattino), stile GNU (preceduto da due trattini) e stile BSD (senza trattino). La combinazione di questi stili non produrrà sempre gli stessi risultati. Ad esempio, il comando ps (stile BSD) stamperà tutti i processi con un terminale di controllo, inclusi i leader di sessione (il primo membro di un gruppo di processi). Stamperà anche lo stato di ogni processo, così come il comando completo (incluse le opzioni) di ogni processo. Il comando ps -a (stile Unix) stampa anche tutti i processi con un terminale di controllo, ma non include i leader di sessione, lo stato di ogni processo, né il comando completo di ogni processo.
Opzioni comando ps
Il comando ps supporta diverse opzioni. Alcune delle opzioni più importanti sono elencate qui.
Opzione | usato per |
---|---|
a | Elenca tutti i processi attivati dall'utente. |
-e | Elenca tutti i processi. |
-l | Elenco processi utilizzando un formato elenco lungo. |
tu | Elenca i processi insieme al nome utente e all'ora di inizio. |
r | Escludi i processi che non sono attualmente in esecuzione. |
x | Includi processi senza terminale. |
T | Escludi i processi avviati da qualsiasi terminale diverso da quello corrente. |
-U {nome utente} | Visualizza i processi in base all'utente specificato. |
-p {PID} | Visualizza solo il processo associato al PID specificato. |
-C {comando} | Visualizza tutti i processi in base al nome del comando. |
–tty {numero terminale} | Visualizza tutti i processi in esecuzione sul terminale specificato. |
Se si verifica l'errore seguente durante l'esecuzione del comando ps:
ps: command not found
puoi provare a installare il pacchetto seguente secondo la tua scelta di distribuzione:
Distribuzione del sistema operativo | Comando |
---|---|
Debian | apt-get install procps-ng |
Ubuntu | apt-get install procps-ng |
Arci Linux | pacman -S procps-ng |
Kali Linux | apt-get install procps-ng |
CentOS | yum install procps-ng |
Fedora | dnf install procps-ng |
Raspbian | apt-get install procps-ng |
Esempi di comandi ps
1. Per vedere il processo zombie:
# ps aux | awk '{ print $8 " " $2 }' | grep -w Z
2. Elenco dei processi zombie:
# ps -el | grep Z
3. Per trovare/elencare i processi in esecuzione:
# ps -r
4. Trova i processi per un particolare utente:
# ps -U apache # ps U apache # ps -u apache
5. Per vedere ogni processo in esecuzione come root (ID reale ed effettivo) nel formato utente:
# ps -U root u
6. Per trovare/elencare i processi che hanno test.pl nell'esecuzione del comando:
# ps -f -C test.pl
7. Elenca i processi basati sui PID:
# ps -f --ppid 9576
8. pgrep, pkill – cerca o segnala i processi in base al nome e ad altri attributi:
# pgrep 1234 # pkill 1234 OR # pkill httpd
9. Ordinamento dell'output ps:
# ps -eo uname,pid,ppid,nlwp,pcpu,pmem,psr,start_time,tty,time,args --sort -pcpu,-pmem
10. Per stampare un albero dei processi:
# ps -ejH # ps axjf
11. Stampa solo gli ID di processo di syslogd:
# ps -C syslogd -o pid=
12. Stampare solo il nome del PID 42:
# ps -p 42 -o comm=
13. Elenca il processo in base all'UID e ai comandi:
# ps -f -u wwwrun,postfix
14. Elenca i processi basati su PID o PPID:
# ps -f --ppid 9576
15. Elenca i processi in una gerarchia:
# ps -e -o pid,args --forest
16. Elenca il tempo trascorso sul muro per i processi:
# ps -p 1,29675 -o pid,etime=
17. Per elencare la gerarchia dei processi:
# ps -e -o pid,args --forest # ps axjf # ps -ejH
18. Elenca tutti i thread per un particolare processo:
# ps -C java -L -o pid,tid,pcpu,state,nlwp,args
19. Per visualizzare un albero di processi:
# pstree
20. Per elencare il tempo trascorso sul muro per i processi:
# ps -p 1,29675 -o pid,etime=
21. Per ottenere l'ora di inizio del processo:
# ps -p PID -o lstart=
22. Visualizza tutte le informazioni su ciascuno dei processi attualmente in esecuzione:
# ps -ef | grep
23. Per ottenere informazioni sui thread:
# ps -eLf # ps axms
24. Per ottenere informazioni sulla sicurezza:
# ps -eo euser,ruser,suser,fuser,f,comm,label # ps axZ # ps -eM
25. Per vedere ogni processo con un formato definito dall'utente:
# ps -eo pid,tid,class,rtprio,ni,pri,psr,pcpu,stat,wchan:14,comm # ps axo stat,euid,ruid,tty,tpgid,sess,pgrp,ppid,pid,pcpu,comm # ps -eopid,tt,user,fname,tmout,f,wchan
26. Elenca tutti i thread per un particolare processo:
# ps -C java -L -o pid,tid,pcpu,state,nlwp,args
27. Elenca tutti i processi in esecuzione inclusa la stringa di comando completa:
# ps auxww
28. Cerca un processo che corrisponda a una stringa:
# ps aux | grep string
29. Elenca tutti i processi dell'utente corrente in formato extra completo:
# ps --user $(id -u) -F
30. Elenca tutti i processi dell'utente corrente come un albero:
# ps --user $(id -u) f
31. Ottieni il PID padre di un processo:
# ps -o ppid= -p pid
32. Ordina i processi in base al consumo di memoria:
# ps --sort size