30 nyttige ps kommandoeksempler til Linux-procesovervågning


ps (processestatus) er et oprindeligt Unix/Linux-værktøj til visning af oplysninger om et udvalg af kørende processer på et system: det læser disse oplysninger fra de virtuelle filer i/proc-filsystemet. Det er et af de vigtige værktøjer til systemadministration specifikt under procesovervågning for at hjælpe dig med at forstå, hvad der foregår på et Linux-system.

Det har mange muligheder for at manipulere dets output, men du finder et lille antal af dem praktisk anvendelige til daglig brug.

I denne artikel ser vi på 30 nyttige eksempler på ps-kommandoer til overvågning af aktive kørende processer på et Linux-system.

Bemærk, at ps producerer output med en overskriftslinje, der repræsenterer betydningen af hver kolonne med information, du kan finde betydningen af alle etiketterne på ps man-siden.

Liste over alle processer i nuværende shell

1. Hvis du kører ps-kommando uden argumenter, viser den processer for den aktuelle shell.

$ ps 

Udskriv alle processer i forskellige formater

2. Vis hver aktiv proces på et Linux-system i generisk (Unix/Linux) format.

$ ps -A
OR
$ ps -e

3. Vis alle processer i BSD-format.

$ ps au
OR
$ ps axu

4. For at udføre en fuldformatsfortegnelse skal du tilføje flag -f eller -F .

$ ps -ef
OR
$ ps -eF

Vis brugerkørende processer

5. Du kan vælge alle processer, der ejes af dig (løber af ps-kommandoen, root i dette tilfælde), skriv:

$ ps -x 

6. Brug flag -U for at få vist en brugers processer efter rigtigt bruger-id (RUID) eller navn.

$ ps -fU tecmint
OR
$ ps -fu 1000

7. For at vælge en brugers processer efter effektivt bruger-ID (EUID) eller navn skal du bruge indstillingen -u .

$ ps -fu tecmint
OR
$ ps -fu 1000

Udskriv alle processer, der kører som rod (reelt og effektivt ID)

8. Nedenstående kommando giver dig mulighed for at se alle processer, der kører med root-brugerrettigheder (rigtigt og effektivt ID) i brugerformat.

$ ps -U root -u root 

Vis gruppeprocesser

9. Hvis du vil liste alle processer, der ejes af en bestemt gruppe (RGID) eller navn), skal du skrive.

$ ps -fG apache
OR
$ ps -fG 48

10. Skriv for at liste alle processer, der ejes af det effektive gruppenavn (eller session).

$ ps -fg apache

Vis processer efter PID og PPID

11. Du kan liste processer ved hjælp af PID som følger.

$ ps -fp 1178

12. For at vælge proces ved PPID skal du skrive.

$ ps -f --ppid 1154

13. Foretag valg ved hjælp af PID-listen.

$ ps -fp 2226,1154,1146

Vis processer efter TTY

14. For at vælge processer efter tty skal du bruge -t-flag som følger.

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

Udskriv procestræ

15. Et procestræ viser, hvordan processer på systemet er knyttet til hinanden; processer, hvis forældre er blevet dræbt, vedtages af init (eller systemd).

$ ps -e --forest 

16. Du kan også udskrive et procestræ til en given proces som denne.

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

Udskriv procestråde

17. For at udskrive alle tråde i en proces skal du bruge flagget -H , dette viser kolonnerne LWP (letvægtsproces) samt NLWP (antal letvægtsprocesser).

$ ps -fL -C httpd

Angiv brugerdefineret outputformat

Ved hjælp af indstillingerne -o eller –format giver ps dig mulighed for at oprette brugerdefinerede outputformater som vist nedenfor.

18. Hvis du vil liste alle formatspecifikatorer, skal du medtage L -flagget.

$ ps L

19. Kommandoen nedenfor giver dig mulighed for at se PID, PPID, brugernavn og kommando for en proces.

$ ps -eo pid,ppid,user,cmd

20. Nedenfor er et andet eksempel på et brugerdefineret outputformat, der viser filsystemgruppe, pæn værdi, starttid og forløbet tid for en proces.

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

21. At finde et procesnavn ved hjælp af dets PID.

$ ps -p 1154 -o comm=

Vis forældre- og barneprocesser

22. For at vælge en bestemt proces med dens navn skal du bruge -C-flag, dette viser også alle dets underordnede processer.

$ ps -C sshd

23. Find alle PID'er i alle forekomster af en proces, nyttige ved skrivning af scripts, der skal læse PID'er fra en std-output eller -fil.

$ ps -C httpd -o pid=

24. Kontroller udførelsestid for en proces.

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

Outputtet nedenfor viser, at HTTPD-tjenesten har kørt i 1 timer, 48 minutter og 17 sekunder.

Fejlfinding af Linux-systemydelse

Hvis dit system ikke fungerer som det skal, for eksempel hvis det er usædvanligt langsomt, kan du udføre nogle systemfejlfinding som følger.

26. Find de mest kørende processer efter højeste hukommelse og CPU-brug i Linux.

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

27. At dræbe Linux-processer/ikke-reagerende applikationer eller enhver proces, der bruger høj CPU-tid.

Find først PID for den ikke-reagerende proces eller applikation.

$ ps -A | grep -i stress

Brug derefter kill-kommandoen til at afslutte den med det samme.

$ kill -9 2583 2584

Udskriv sikkerhedsoplysninger

28. Vis sikkerhedskontekst (specifikt til SELinux) sådan.

$ ps -eM
OR
$ ps --context

29. Du kan også få vist sikkerhedsoplysninger i brugerdefineret format med denne kommando.

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

Udfør procesovervågning i realtid ved hjælp af Watch Utility

Du kan også godt lide at læse disse følgende relaterede artikler.

  1. Sådan finder du et procesnavn ved hjælp af PID-nummer i Linux
  2. Find mest kørende processer efter højeste hukommelse og CPU-brug i Linux
  3. En guide til at dræbe, Pkill og Killall-kommandoer til at afslutte en proces i Linux
  4. Sådan finder du og dræber kørende processer i Linux
  5. Sådan startes Linux-kommando i baggrund og frigør proces i terminal

Det er alt for nu. Hvis du har nyttige ps-kommandoeeksempel (er) til at dele (ikke glemme at forklare, hvad det gør), skal du bruge kommentarformularen nedenfor.