30 korisnih primjera 'ps naredbi' za praćenje procesa u Linuxu


ps (status procesa) izvorni je Unix/Linux uslužni program za pregled informacija o odabiru pokrenutih procesa na sustavu: on čita te informacije iz virtualnih datoteka u/proc datotečni sustav. To je jedan od važnih uslužnih programa za administraciju sustava, posebno za praćenje procesa, koji vam pomaže razumjeti što se događa u Linux sustavu.

Ima brojne opcije za manipuliranje svojim izlazom, međutim, mali broj njih naći ćete praktično korisne za svakodnevnu upotrebu.

Pročitajte također: Sve što trebate znati o procesima u Linuxu [Opsežni vodič]

U ovom članku ćemo pogledati 30 korisnih primjera ps naredbi za praćenje aktivnih pokrenutih procesa na Linux sustavu.

Imajte na umu da ps daje izlaz s linijom naslova, koja predstavlja značenje svakog stupca informacija, možete pronaći značenje svih oznaka na ps man stranici.

Popis svih procesa u trenutnoj ljusci

1. Ako pokrenete ps naredbu bez argumenata, ona prikazuje procese za trenutnu ljusku.

ps 

Ispis svih procesa u različitim formatima

2. Prikažite svaki aktivni proces na Linux sustavu u generičkom (Unix/Linux) formatu.

ps -A
OR
ps -e

3. Prikaži sve procese u BSD formatu.

ps au
OR
ps axu

4. Za izvođenje popisa u punom formatu dodajte oznaku -f ili -F.

ps -ef
OR
ps -eF

Prikaz korisničkih pokrenutih procesa

5. Možete odabrati sve procese u vašem vlasništvu (pokretač ps naredbe, root u ovom slučaju), upišite:

ps -x 

6. Za prikaz korisničkih procesa prema stvarnom korisničkom ID-u (RUID) ili imenu, koristite oznaku -U.

ps -fU tecmint
OR
ps -fu 1000

7. Za odabir korisničkih procesa prema ID (EUID) ili imenu efektivnog korisnika koristite opciju -u .

ps -fu tecmint
OR
ps -fu 1000

Ispis svih procesa koji se izvode kao root (stvarni i efektivni ID)

8. Naredba u nastavku omogućuje vam pregled svakog procesa koji se izvodi s root korisničkim privilegijama (pravi i efektivni ID) u korisničkom formatu.

ps -U root -u root 

Prikaz grupnih procesa

9. Ako želite ispisati sve procese u vlasništvu određene grupe (pravi ID grupe (RGID) ili naziv), upišite.

ps -fG apache
OR
ps -fG 48

10. Za popis svih procesa u vlasništvu efektivnog naziva grupe (ili sesije), upišite.

ps -fg apache

Prikaz procesa prema PID-u i PPID-u

11. Možete navesti procese prema PID-u kako slijedi.

ps -fp 1178

12. Za odabir procesa prema PPID, upišite.

ps -f --ppid 1154

13. Napravite odabir koristeći PID popis.

ps -fp 2226,1154,1146

Prikaži procese prema TTY-ju

14. Za odabir procesa prema tty koristite oznaku -t kako slijedi.


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

Ispis stabla procesa

15. Stablo procesa pokazuje kako su procesi u sustavu međusobno povezani; procese čiji su roditelji ubijeni usvaja init (ili systemd).

ps -e --forest 

16. Također možete ispisati stablo procesa za određeni proces poput ovog.

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

Ispis Procesnih niti

17. Za ispis svih niti procesa, upotrijebite oznaku -L, to će prikazati LWP (lagani proces), kao i stupce NLWP (broj laganih procesa).

ps -fL -C httpd

Navedite prilagođeni izlazni format

Korištenjem opcija -o ili –format, ps vam omogućuje izradu korisnički definiranih izlaznih formata kao što je prikazano u nastavku.

18. Za popis svih specifikacija formata uključite oznaku L.

ps L

19. Naredba u nastavku omogućuje vam pregled PID-a, PPID-a, korisničkog imena i naredbe procesa.

ps -eo pid,ppid,user,cmd

20. Ispod je još jedan primjer prilagođenog izlaznog formata koji prikazuje grupu datotečnog sustava, dobru vrijednost, vrijeme početka i proteklo vrijeme procesa.

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

21. Pronaći naziv procesa koristeći njegov PID.

ps -p 1154 -o comm=

Prikaži roditeljske i podređene procese

22. Da biste odabrali određeni proces prema njegovom nazivu, upotrijebite oznaku -C, ovo će također prikazati sve njegove podređene procese.

ps -C sshd

23. Pronađite sve PID-ove svih instanci procesa, korisno kada pišete skripte koje trebaju čitati PID-ove iz std izlaza ili datoteke.

ps -C httpd -o pid=

24. Provjerite vrijeme izvršenja procesa.

ps -eo comm,etime,user | grep httpd

Izlaz u nastavku pokazuje da je HTTPD usluga radila 1 sat, 48 minuta i 17 sekundi.

Rješavanje problema s performansama Linux sustava

Ako vaš sustav ne radi kako bi trebao biti, na primjer, ako je neuobičajeno spor, možete izvršiti rješavanje problema sa sustavom na sljedeći način.

26. Pronađite najbolje pokrenute procese prema najvećoj upotrebi memorije i procesora u Linuxu.

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

27. Za zaustavljanje Linux procesa/aplikacija koje ne reagiraju ili bilo kojeg procesa koji troši puno CPU vremena.

Najprije pronađite PID procesa ili aplikacije koji ne reagira.

ps -A | grep -i stress

Zatim upotrijebite naredbu kill da biste ga odmah prekinuli.

kill -9 2583 2584

Sigurnosne informacije za ispis

28. Prikaži sigurnosni kontekst (posebno za SELinux) ovako.

ps -eM
OR
ps --context

29. Ovom naredbom također možete prikazati sigurnosne informacije u korisnički definiranom formatu.

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

Izvršite nadzor procesa u stvarnom vremenu koristeći Watch Utility

30. Konačno, budući da ps prikazuje statičke informacije, možete upotrijebiti uslužni program watch za praćenje procesa u stvarnom vremenu s ponavljajućim izlazom, prikazanim nakon svake sekunde kao u naredbi ispod (odredite prilagođenu ps naredbu da postignete svoj cilj).

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

Važno: ps prikazuje samo statičke informacije, za pregled često ažuriranih rezultata možete koristiti alate kao što su htop; vrh, i pogledi: posljednja dva su zapravo alati za praćenje performansi sustava Linux.

Također biste mogli pročitati sljedeće povezane članke.

  1. Kako pronaći naziv procesa pomoću PID broja u Linuxu
  2. Pronađite najbolje pokrenute procese prema najvećoj upotrebi memorije i CPU-a u Linuxu
  3. Vodič za naredbe Kill, Pkill i Killall za prekid procesa u Linuxu
  4. Kako pronaći i zaustaviti pokrenute procese u Linuxu
  5. Kako pokrenuti Linux naredbu u pozadini i odvojiti proces u terminalu

To je sve za sada. Ako imate korisne primjere ps naredbe za podijeliti (ne zaboravljajući objasniti što radi), upotrijebite obrazac za komentare u nastavku.