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.
- Cum să găsiți un nume de proces folosind numărul PID în Linux
- Găsiți cele mai bune procese care rulează după cea mai mare utilizare a memoriei și a procesorului în Linux
- Un ghid pentru comenzile Kill, Pkill și Killall pentru a termina un proces în Linux
- Cum să găsiți și să omorâți procesele care rulează în Linux
- 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.