30 Nyttige ‘ps Command’ -eksempler til Linux-procesovervågning
ps (processestatus) er et oprindeligt Unix / Linux-værktøj til visning af oplysninger om et valg af kørende processer på et system: det læser disse oplysninger fra de virtuelle filer i / proc filsystem. 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 adskillige muligheder for at manipulere dets output, men du finder en lille antal af dem praktisk anvendelige til daglig brug.
Læs også: Alt hvad du behøver at vide om processer i Linux
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 i ps man side.
Liste over alle processer i den aktuelle shell
1. Hvis du kører ps-kommando uden argumenter, viser den processer til den aktuelle shell.
$ ps
Udskriv alle processer i forskellige formater
2. Vis enhver aktiv proces på et Linux-system i generisk (Unix / Linux) format.
$ ps -AOR$ ps -e
3. Vis alle processer i BSD-format.
$ ps auOR$ ps axu
4. For at udføre en fuldformatfortegnelse skal du tilføje -f
eller -F
flag.
$ ps -efOR$ ps -eF
Vis brugerløbsprocesser
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. For at få vist en brugers processer efter rigtigt bruger-id (RUID) eller navn skal du bruge -U
flag.
$ ps -fU tecmintOR$ 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 tecmintOR$ ps -fu 1000
Udskriv alle processer, der kører som rod (rigtigt og effektivt ID)
8. Kommandoen nedenfor giver dig mulighed for at se alle processer, der kører med root-brugerrettigheder (ægte & effektiv ID) i brugerformat.
$ ps -U root -u root
Vis gruppeprocesser
9. Hvis du vil liste alle processer, der ejes af en bestemt gruppe (reel gruppe-id (RGID) eller navn), skal du skrive.
$ ps -fG apacheOR$ ps -fG 48
10. For at liste alle processer, der ejes af det effektive gruppenavn (eller session), skal du skrive.
$ 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 efter PPID skal du skrive.
$ ps -f --ppid 1154
13. Foretag valg ved hjælp af PID-liste.
$ 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
Printprocestræ
15. Et procestræ viser, hvordan processer i 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 sshdOR$ ps -ef --forest | grep -v grep | grep sshd
Udskrivningsprocessetråde
17. For at udskrive alle tråde i en proces skal du bruge flagget -H
. Dette viser LWP (letvægtsproces) samt NLWP (antal letvægtsprocesser) kolonner.
$ 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
flag.
$ 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, god værdi, starttid og forløbet tid for en proces.
$ ps -p 1154 -o pid,ppid,fgroup,ni,lstart,etime
21. For at finde et procesnavn ved hjælp af dets PID.
$ ps -p 1154 -o comm=
Vis forældre- og underordnede processer
22. For at vælge en bestemt proces ved 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 Linux-systemydelse
Hvis dit system ikke fungerer som det skal, f.eks. 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 | headOR$ ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%cpu | head
27. For at dræbe Linux-processer / applikationer, der ikke svarer eller enhver proces, der bruger høj CPU-tid.
Find først PID for processen, der ikke svarer eller applikationen.
$ ps -A | grep -i stress
Brug derefter kommandoen kill til at afslutte den med det samme.
$ kill -9 2583 2584
Udskriv sikkerhedsoplysninger
28. Vis sikkerhedskontekst (specifikt til SELinux) sådan.
$ ps -eMOR$ 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 urværktøj
30. Endelig, da ps viser statiske oplysninger, kan du bruge urværktøjet til at udføre procesovervågning i realtid med gentagne output, der vises efter hvert sekund som i kommandoen nedenfor (angiv en brugerdefineret ps-kommando for at nå dit mål).
$ watch -n 1 "ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | head"
Vigtigt: ps viser kun statiske oplysninger. For at se ofte opdaterede output kan du bruge værktøjer såsom htop; top og blik: de sidste to er i virkeligheden Linux-systemovervågningsværktøj.
Du vil måske også gerne læse disse følgende relaterede artikler.
- Sådan finder du et procesnavn ved hjælp af PID-nummer i Linux
- Find de mest kørende processer efter højeste hukommelse og CPU-brug i Linux
- En guide til Kill, Pkill og Killall-kommandoer for at afslutte en proces i Linux
- Sådan finder du og dræber kørende processer i Linux
- Sådan starter du Linux-kommando i baggrunden og løsner processen i Terminal