30 Uporabni primeri ps ukazov za nadzor procesov Linux


ps (status procesov) je izvorni pripomoček Unix/Linux za ogled informacij o izbiri tekočih procesov v sistemu: te podatke bere iz navideznih datotek v datotečnem sistemu/proc. To je eden pomembnih pripomočkov za sistemsko skrbništvo, ki je posebej pod nadzorom procesa, da vam pomaga razumeti, kaj se dogaja v sistemu Linux.

Ima številne možnosti za manipulacijo s svojim izhodom, vendar se vam bo zdelo, da so le -te praktično uporabne za vsakodnevno uporabo.

V tem članku si bomo ogledali 30 uporabnih primerov ps ukazov za spremljanje aktivnih tekočih procesov v sistemu Linux.

Upoštevajte, da ps proizvaja izhodne podatke z naslovno vrstico, ki predstavlja pomen vsakega stolpca informacij, pomen vseh oznak pa najdete na strani ps man.

Navedite vse procese v trenutni lupini

1. Če ukaz ps zaženete brez argumentov, prikaže procese za trenutno lupino.

$ ps 

Natisnite vse procese v različnih oblikah

2. Prikažite vse aktivne procese v sistemu Linux v splošni obliki (Unix/Linux).

$ ps -A
OR
$ ps -e

3. Prikaži vse procese v obliki BSD.

$ ps au
OR
$ ps axu

4. Če želite izvesti seznam v polni obliki, dodajte zastavico -f ali -F .

$ ps -ef
OR
$ ps -eF

Prikaži uporabniške procese

5. Izberete lahko vse procese, ki so v vaši lasti (zaganjalnik ukaza ps, v tem primeru root), vnesite:

$ ps -x 

6. Če želite uporabniške procese prikazati z resničnim ID-jem uporabnika (RUID) ali imenom, uporabite zastavico -U .

$ ps -fU tecmint
OR
$ ps -fu 1000

7. Če želite uporabniške procese izbrati po učinkovitem ID-ju uporabnika (EUID) ali imenu, uporabite možnost -u .

$ ps -fu tecmint
OR
$ ps -fu 1000

Natisni vse procese, ki se izvajajo kot korenski (dejanski in učinkovit ID)

8. Spodnji ukaz vam omogoča ogled vseh procesov, ki se izvajajo s pravicami korenskih uporabnikov (dejanski in učinkoviti ID) v uporabniški obliki.

$ ps -U root -u root 

Prikaži skupinske procese

9. Če želite našteti vse procese v lasti določene skupine (dejanski ID skupine (RGID) ali ime), vnesite.

$ ps -fG apache
OR
$ ps -fG 48

10. Vnesite vse procese v lasti učinkovitega imena skupine (ali seje).

$ ps -fg apache

Prikaži procese po PID in PPID

11. Procese po PID -u lahko navedete na naslednji način.

$ ps -fp 1178

12. Če želite postopek izbrati s PPID, vnesite.

$ ps -f --ppid 1154

13. Izberite s pomočjo seznama PID.

$ ps -fp 2226,1154,1146

Prikaz procesov po TTY

14. Če želite izbrati procese po tty, uporabite zastavico -t, kot sledi.

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

Drevo procesa tiskanja

15. Drevo procesov prikazuje, kako so procesi v sistemu med seboj povezani; procese, katerih starši so bili ubiti, sprejme init (ali systemd).

$ ps -e --forest 

16. Za tak postopek lahko natisnete tudi drevo procesov, kot je ta.

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

Natisni niti procesov

17. Če želite natisniti vse niti procesa, uporabite zastavico -L , ta bo prikazala stolpce LWP (lahek postopek) in NLWP (število lahkih procesov).

$ ps -fL -C httpd

Določite izhodni format po meri

Z uporabo možnosti -o ali –format vam ps omogoča izdelavo uporabniško določenih izhodnih formatov, kot je prikazano spodaj.

18. Če želite našteti vse specifikatorje formata, vključite zastavico L .

$ ps L

19. Spodnji ukaz vam omogoča ogled PID, PPID, uporabniškega imena in ukaza procesa.

$ ps -eo pid,ppid,user,cmd

20. Spodaj je še en primer izhodne oblike po meri, ki prikazuje skupino datotečnega sistema, lepo vrednost, začetni čas in pretečeni čas procesa.

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

21. Če želite poiskati ime procesa s pomočjo njegovega PID.

$ ps -p 1154 -o comm=

Prikažite starševske in otroške procese

22. Če želite izbrati določen postopek po njegovem imenu, uporabite zastavico -C, ki bo prikazala tudi vse njegove podrejene procese.

$ ps -C sshd

23. Poiščite vse PID-je vseh primerov procesa, koristne pri pisanju skriptov, ki morajo prebrati PID-je iz std izhoda ali datoteke.

$ ps -C httpd -o pid=

24. Preverite čas izvedbe postopka.

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

Spodnji izhod prikazuje, da se storitev HTTPD izvaja 1 uro, 48 minut in 17 sekund.

Odpravljanje težav z zmogljivostjo sistema Linux

Če vaš sistem na primer ne deluje tako, kot bi moral, če je na primer nenavadno počasen, lahko izvedete nekaj odpravljanja težav na naslednji način.

26. Poiščite najbolj aktivne procese glede na največjo porabo pomnilnika in CPU v Linuxu.

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

27. Za uničenje procesov Linuxa/neodzivnih aplikacij ali katerega koli procesa, ki zahteva veliko CPU-jevega časa.

Najprej poiščite PID neodzivnega procesa ali aplikacije.

$ ps -A | grep -i stress

Nato uporabite ukaz kill, da ga takoj zaključite.

$ kill -9 2583 2584

Natisnite varnostne informacije

28. Pokažite varnostni kontekst (posebej za SELinux) tako.

$ ps -eM
OR
$ ps --context

29. S tem ukazom lahko tudi prikažete varnostne informacije v uporabniško določeni obliki.

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

Opravite sprotno spremljanje procesov z uporabo orodja Watch Utility

30. Nazadnje, ker ps prikazuje statične podatke, lahko s pomočjo pripomočka za opazovanje v realnem času spremljate proces s ponavljajočimi se izhodi, ki se prikažejo vsako sekundo, kot v spodnjem ukazu (za uresničitev cilja določite ukaz ps po meri).

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

Pomembno: ps prikazuje samo statične podatke, za ogled pogosto posodobljenih izhodov lahko uporabite orodja, kot so pogledi: zadnja dva sta pravzaprav orodji za nadzor delovanja sistema Linux.

Morda bi radi prebrali tudi naslednje povezane članke.

  1. Kako najti ime procesa s pomočjo številke PID v Linuxu
  2. Poiščite najbolj aktivne procese glede na največjo porabo pomnilnika in CPU v Linuxu
  3. Vodnik po ukazih Kill, Pkill in Killall za prekinitev procesa v Linuxu
  4. Kako najti in ubiti tekoče procese v Linuxu
  5. Kako zagnati ukaz Linux v ozadju in odstraniti postopek v terminalu

To je vse za zdaj. Če želite deliti uporabne primere ukazov ps (ne pozabite pojasniti, kaj počne), uporabite spodnji obrazec za komentar.