30 de exemple utile de comenzi ps pentru monitorizarea proceselor Linux


ps (starea proceselor) este un utilitar nativ Unix/Linux pentru vizualizarea informațiilor referitoare la o selecție de procese care rulează pe un sistem: citește aceste informații din fișierele virtuale din/sistem de fișiere proc. Este unul dintre utilitățile importante pentru administrarea sistemului, în special în cadrul monitorizării procesului, pentru a vă ajuta să înțelegeți ce se întâmplă într-un sistem Linux.

Are numeroase opțiuni pentru manipularea ieșirii sale, cu toate acestea, veți găsi un număr mic dintre ele practic utile pentru utilizarea zilnică.

În acest articol, vom analiza 30 de exemple utile de comenzi ps pentru monitorizarea proceselor de rulare active pe un sistem Linux.

Rețineți că ps produce rezultate cu o linie de antet, care reprezintă semnificația fiecărei coloane de informații, puteți găsi semnificația tuturor etichetelor pe pagina de manual ps.

Listează toate procesele din Shell curent

1. Dacă rulați comanda ps fără niciun argument, aceasta afișează procesele pentru shell-ul curent.

$ ps 

Imprimați toate procesele în diferite formate

2. Afișează fiecare proces activ pe un sistem Linux în format generic (Unix/Linux).

$ ps -A
OR
$ ps -e

3. Afișează toate procesele în format BSD.

$ ps au
OR
$ ps axu

4. Pentru a realiza o listă în format complet, adăugați marcajul -f sau -F.

$ ps -ef
OR
$ ps -eF

Afișează procesele care rulează utilizator

5. Puteți selecta toate procesele deținute de dvs. (executorul comenzii ps, root în acest caz), tastați:

$ ps -x 

6. Pentru a afișa procesele unui utilizator după ID-ul utilizatorului real (RUID) sau nume, utilizați marcajul -U.

$ ps -fU tecmint
OR
$ ps -fu 1000

7. Pentru a selecta procesele unui utilizator după ID de utilizator (EUID) sau nume efectiv, utilizați opțiunea -u .

$ ps -fu tecmint
OR
$ ps -fu 1000

Imprimați toate procesele care rulează ca rădăcină (ID real și efectiv)

8. Comanda de mai jos vă permite să vizualizați fiecare proces care rulează cu privilegii de utilizator root (ID real și efectiv) în format de utilizator.

$ ps -U root -u root 

Afișează procesele de grup

9. Dacă doriți să enumerați toate procesele deținute de un anumit grup (ID-ul grupului real (RGID) sau nume), introduceți.

$ ps -fG apache
OR
$ ps -fG 48

10. Pentru a lista toate procesele deținute de numele efectiv al grupului (sau sesiune), tastați.

$ ps -fg apache

Afișează procesele după PID și PPID

11. Puteți enumera procesele după PID, după cum urmează.

$ ps -fp 1178

12. Pentru a selecta procesul după PPID, tastați.

$ ps -f --ppid 1154

13. Faceți o selecție folosind o listă de PID.

$ ps -fp 2226,1154,1146

Afișează procesele prin TTY

14. Pentru a selecta procese după tty, utilizați marcajul -t după cum urmează.

$ ps -t pts/0
$ ps -t pts/1
$ ps -ft tty1

Arborele procesului de imprimare

15. Un arbore de proces arată modul în care procesele din sistem sunt legate între ele; procesele ai căror părinți au fost uciși sunt adoptate de init (sau systemd).

$ ps -e --forest 

16. De asemenea, puteți tipări un arbore de proces pentru un anumit proces, ca acesta.

$ ps -f --forest -C sshd
OR
$ ps -ef --forest | grep -v grep | grep sshd 

Procesul de imprimare fire

17. Pentru a imprima toate firele de execuție ale unui proces, utilizați indicatorul -L, acesta va afișa LWP (proces ușor), precum și coloanele NLWP (numărul de procese ușoare).

$ ps -fL -C httpd

Specificați format personalizat de ieșire

Folosind opțiunile -o sau –format, ps vă permite să creați formate de ieșire definite de utilizator, așa cum se arată mai jos.

18. Pentru a enumera toți specificatorii de format, includeți marcatorul L.

$ ps L

19. Comanda de mai jos vă permite să vizualizați PID, PPID, numele de utilizator și comanda unui proces.

$ ps -eo pid,ppid,user,cmd

20. Mai jos este un alt exemplu de format de ieșire personalizat care arată grupul sistemului de fișiere, valoarea bună, ora de începere și timpul scurs al unui proces.

$ ps -p 1154 -o pid,ppid,fgroup,ni,lstart,etime

21. Pentru a găsi un nume de proces folosind PID-ul său.

$ ps -p 1154 -o comm=

Afișați procesele părinte și copilului

22. Pentru a selecta un anumit proces după numele său, utilizați indicatorul -C, acesta va afișa și toate procesele sale secundare.

$ ps -C sshd

23. Găsiți toate PID-urile ale tuturor instanțelor unui proces, utile atunci când scrieți scripturi care trebuie să citească PID-urile dintr-o ieșire sau fișier standard.

$ ps -C httpd -o pid=

24. Verificați timpul de execuție al unui proces.

$ ps -eo comm,etime,user | grep httpd

Rezultatul de mai jos arată că serviciul HTTPD rulează timp de 1 oră, 48 de minute și 17 secunde.

Depanați performanța sistemului Linux

Dacă sistemul dvs. nu funcționează așa cum ar trebui, de exemplu, dacă este neobișnuit de lent, puteți efectua unele depanare a sistemului după cum urmează.

26. Găsiți cele mai bune procese care rulează după cea mai mare utilizare a memoriei și a procesorului în Linux.

$ ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | head
OR
$ ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%cpu | head

27. Pentru a elimina procesele Linux/aplicațiile care nu răspund sau orice proces care consumă mult timp CPU.

Mai întâi, găsiți PID-ul al procesului sau al aplicației care nu răspunde.

$ ps -A | grep -i stress

Apoi utilizați comanda kill pentru a o opri imediat.

$ kill -9 2583 2584

Tipăriți informații de securitate

28. Afișați contextul de securitate (în special pentru SELinux) astfel.

$ ps -eM
OR
$ ps --context

29. Puteți afișa și informații de securitate într-un format definit de utilizator cu această comandă.

$ ps -eo  euser,ruser,suser,fuser,f,comm,label

Efectuați monitorizarea procesului în timp real folosind utilitarul Watch

30. În cele din urmă, deoarece ps afișează informații statice, puteți utiliza utilitarul ceas pentru a efectua monitorizarea procesului în timp real cu rezultate repetitive, afișate după fiecare secundă, ca în comanda de mai jos (specificați o comandă ps personalizată pentru a vă atinge obiectivul).

$ watch -n 1 'ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | head'

Important: ps afișează doar informații statice, pentru a vizualiza rezultatele actualizate frecvent puteți folosi instrumente precum priviri: ultimele două sunt de fapt instrumente de monitorizare a performanței sistemului Linux.

De asemenea, s-ar putea dori să citiți următoarele articole conexe.

  1. Cum să găsiți un nume de proces folosind numărul PID în Linux
  2. Găsiți cele mai bune procese care rulează după cea mai mare utilizare a memoriei și a procesorului în Linux
  3. Un ghid pentru comenzile Kill, Pkill și Killall pentru a termina un proces în Linux
  4. Cum să găsiți și să omorâți procesele care rulează în Linux
  5. Cum să porniți comanda Linux în fundal și procesul de detașare în terminal

Asta este tot pentru acum. Dacă aveți vreun exemplu(e) util(e) de comandă ps de distribuit (fără a uita să explicați ce face), utilizați formularul de comentarii de mai jos.