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.
- Sådan finder du et procesnavn ved hjælp af PID-nummer i Linux
- Find mest kørende processer efter højeste hukommelse og CPU-brug i Linux
- En guide til at dræbe, Pkill og Killall-kommandoer til at afslutte en proces i Linux
- Sådan finder du og dræber kørende processer i Linux
- 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.