30 exemples útils d'ordres ps per a la supervisió de processos de Linux
ps (estat dels processos) és una utilitat nativa Unix/Linux per visualitzar informació sobre una selecció de processos en execució en un sistema: llegeix aquesta informació dels fitxers virtuals del sistema de fitxers /proc. És una de les utilitats importants per a l'administració del sistema específicament sota la supervisió de processos, per ajudar-vos a entendre què està passant en un sistema Linux.
Té nombroses opcions per manipular la seva sortida, però, en trobareu un petit nombre pràcticament útils per a l'ús diari.
En aquest article, veurem 30 exemples útils d'ordres ps per supervisar els processos en execució actius en un sistema Linux.
Tingueu en compte que ps produeix una sortida amb una línia d'encapçalament, que representa el significat de cada columna d'informació, podeu trobar el significat de totes les etiquetes a la pàgina man de ps.
Llista tots els processos al Shell actual
1. Si executeu l'ordre ps sense cap argument, mostrarà els processos del shell actual.
$ ps
Imprimeix tots els processos en diferents formats
2. Mostra tots els processos actius en un sistema Linux en format genèric (Unix/Linux).
$ ps -A OR $ ps -e
3. Mostra tots els processos en format BSD.
$ ps au OR $ ps axu
4. Per fer una llista amb format complet, afegiu el senyalador -f
o -F
.
$ ps -ef OR $ ps -eF
Mostra els processos en execució de l'usuari
5. Podeu seleccionar tots els processos de la vostra propietat (executor de l'ordre ps, root en aquest cas), escriviu:
$ ps -x
6. Per mostrar els processos d'un usuari mitjançant l'ID d'usuari real (RUID) o el nom, utilitzeu la marca -U
.
$ ps -fU tecmint OR $ ps -fu 1000
7. Per seleccionar els processos d'un usuari mitjançant l'ID d'usuari efectiu (EUID) o el nom, utilitzeu l'opció -u
.
$ ps -fu tecmint OR $ ps -fu 1000
Imprimeix tots els processos que s'executen com a root (ID real i efectiu)
8. L'ordre següent us permet veure tots els processos que s'executen amb privilegis d'usuari root (ID real i efectiu) en format d'usuari.
$ ps -U root -u root
Mostra processos de grup
9. Si voleu enumerar tots els processos propietat d'un grup determinat (ID de grup real (RGID) o nom), escriviu.
$ ps -fG apache OR $ ps -fG 48
10. Per llistar tots els processos propietat del nom del grup efectiu (o sessió), escriviu.
$ ps -fg apache
Visualització de processos per PID i PPID
11. Podeu llistar els processos per PID de la següent manera.
$ ps -fp 1178
12. Per seleccionar un procés per PPID, escriviu.
$ ps -f --ppid 1154
13. Feu una selecció mitjançant una llista PID.
$ ps -fp 2226,1154,1146
Processos de visualització per TTY
14. Per seleccionar processos per tty, utilitzeu el senyalador -t de la manera següent.
$ ps -t pts/0 $ ps -t pts/1 $ ps -ft tty1
Arbre de procés d'impressió
15. Un arbre de processos mostra com els processos del sistema estan vinculats entre si; els processos els pares dels quals han estat assassinats són adoptats per l'init (o systemd).
$ ps -e --forest
16. També podeu imprimir un arbre de processos per a un procés determinat com aquest.
$ ps -f --forest -C sshd OR $ ps -ef --forest | grep -v grep | grep sshd
Fils de procés d'impressió
17. Per imprimir tots els fils d'un procés, utilitzeu el senyalador -L
, això mostrarà les columnes LWP (procés lleuger) així com NLWP (nombre de processos lleugers).
$ ps -fL -C httpd
Especifiqueu el format de sortida personalitzat
Utilitzant les opcions de format -o o -, ps us permet crear formats de sortida definits per l'usuari tal com es mostra a continuació.
18. Per llistar tots els especificadors de format, incloeu la marca L
.
$ ps L
19. L'ordre següent us permet veure el PID, el PPID, el nom d'usuari i l'ordre d'un procés.
$ ps -eo pid,ppid,user,cmd
20. A continuació es mostra un altre exemple d'un format de sortida personalitzat que mostra el grup del sistema de fitxers, el valor agradable, l'hora d'inici i el temps transcorregut d'un procés.
$ ps -p 1154 -o pid,ppid,fgroup,ni,lstart,etime
21. Per trobar un nom de procés utilitzant el seu PID.
$ ps -p 1154 -o comm=
Mostra els processos de pares i fills
22. Per seleccionar un procés específic pel seu nom, utilitzeu el senyalador -C, això també mostrarà tots els seus processos fills.
$ ps -C sshd
23. Trobeu tots els PID de totes les instàncies d'un procés, útil per escriure scripts que necessiten llegir els PID d'una sortida o fitxer std.
$ ps -C httpd -o pid=
24. Comprovar el temps d'execució d'un procés.
$ ps -eo comm,etime,user | grep httpd
La sortida següent mostra que el servei HTTPD s'ha executat durant 1 hora, 48 minuts i 17 segons.
Resoldre problemes de rendiment del sistema Linux
Si el vostre sistema no funciona com hauria de ser, per exemple, si és inusualment lent, podeu resoldre alguns problemes del sistema de la següent manera.
26. Trobeu els processos que s'executen amb més memòria i ús de CPU a Linux.
$ ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | head OR $ ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%cpu | head
27. Eliminar processos Linux/aplicacions que no responen o qualsevol procés que consumeixi molt temps de CPU.
Primer, cerqueu el PID del procés o de l'aplicació que no respon.
$ ps -A | grep -i stress
A continuació, utilitzeu l'ordre kill per finalitzar-lo immediatament.
$ kill -9 2583 2584
Imprimeix informació de seguretat
28. Mostra el context de seguretat (específicament per a SELinux) així.
$ ps -eM OR $ ps --context
29. També podeu mostrar informació de seguretat en un format definit per l'usuari amb aquesta ordre.
$ ps -eo euser,ruser,suser,fuser,f,comm,label
Realitzeu un seguiment de processos en temps real mitjançant la utilitat Watch
30. Finalment, com que ps mostra informació estàtica, podeu utilitzar la utilitat de rellotge per realitzar un seguiment del procés en temps real amb sortida repetitiva, que es mostra després de cada segon com a l'ordre següent (especifiqueu una comanda ps personalitzada per assolir el vostre objectiu).
$ watch -n 1 'ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | head'
Important: ps només mostra informació estàtica, per veure la sortida actualitzada amb freqüència podeu utilitzar eines com ara mirades: les dues últimes són, de fet, eines de control del rendiment del sistema Linux.
També us agradaria llegir els següents articles relacionats.
- Com trobar un nom de procés mitjançant el número PID a Linux
- Cerca els processos que s'executen amb major ús de memòria i CPU a Linux
- Guia per a les ordres Kill, Pkill i Killall per finalitzar un procés a Linux
- Com trobar i matar processos en execució a Linux
- Com iniciar l'ordre de Linux en segon pla i desconnectar el procés a la terminal
Això és tot per ara. Si teniu exemples d'ordres ps útils per compartir (sense oblidar d'explicar què fa), utilitzeu el formulari de comentaris a continuació.