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.

  1. Com trobar un nom de procés mitjançant el número PID a Linux
  2. Cerca els processos que s'executen amb major ús de memòria i CPU a Linux
  3. Guia per a les ordres Kill, Pkill i Killall per finalitzar un procés a Linux
  4. Com trobar i matar processos en execució a Linux
  5. 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ó.