30 Nyttige ‘ps Command’ -eksempler for Linux-prosessovervåking
ps (prosessstatus) er et naturlig Unix / Linux-verktøy for visning av informasjon om et utvalg for å kjøre prosesser på et system: den leser denne informasjonen fra de virtuelle filene i / proc filsystemet. Det er et av de viktigste verktøyene for systemadministrasjon spesielt under prosessovervåking, for å hjelpe deg med å forstå hva som skjer på et Linux-system.
Det har mange muligheter for å manipulere utdataene, men du vil finne en liten antall av dem praktisk talt nyttige for daglig bruk.
Les også: Alt du trenger å vite om prosesser i Linux
I denne artikkelen ser vi på 30 nyttige eksempler på ps-kommandoer. for å overvåke aktive kjørende prosesser på et Linux-system.
Merk at ps produserer utdata med en overskriftslinje, som representerer betydningen av hver kolonne med informasjon, du kan finne betydningen av alle etikettene i ps man side.
Liste over alle prosesser i gjeldende skall
1. Hvis du kjører ps-kommando uten argumenter, viser den prosesser for gjeldende skall.
$ ps
Skriv ut alle prosesser i forskjellige formater
2. Vis alle aktive prosesser på et Linux-system i generisk (Unix / Linux) format.
$ ps -AOR$ ps -e
3. Vis alle prosesser i BSD-format.
$ ps auOR$ ps axu
4. For å utføre en fullformatoppføring, legg til -f
eller -F
flagget.
$ ps -efOR$ ps -eF
Vis brukerløpsprosesser
5. Du kan velge alle prosesser du eier (løper av ps-kommandoen, root i dette tilfellet), skriv:
$ ps -x
6. For å vise en brukers prosesser etter ekte bruker-ID (RUID) eller navn, bruk -U
flagget.
$ ps -fU tecmintOR$ ps -fu 1000
7. For å velge en brukers prosesser etter effektiv bruker-ID (EUID) eller navn, bruk alternativet -u
.
$ ps -fu tecmintOR$ ps -fu 1000
Skriv ut alle prosesser som kjører som rot (ekte og effektiv ID)
8. Kommandoen nedenfor lar deg se alle prosesser som kjører med root-brukerrettigheter (ekte & effektiv ID) i brukerformat.
$ ps -U root -u root
Vis gruppeprosesser
9. Hvis du vil liste opp alle prosesser som eies av en bestemt gruppe (ekte gruppe-ID (RGID) eller navn), skriver du inn.
$ ps -fG apacheOR$ ps -fG 48
10. For å liste opp alle prosesser som eies av effektivt gruppenavn (eller økt), skriv inn.
$ ps -fg apache
Vis prosesser etter PID og PPID
11. Du kan liste opp prosesser etter PID som følger.
$ ps -fp 1178
12. For å velge prosess etter PPID, skriv inn.
$ ps -f --ppid 1154
13. Gjør valg ved hjelp av PID-listen.
$ ps -fp 2226,1154,1146
Vis prosesser etter TTY
14. For å velge prosesser etter tty, bruk -t-flagget som følger.
$ ps -t pst/0$ ps -t pst/1$ ps -ft tty1
Print Process Tree
15. Et prosestre viser hvordan prosesser på systemet er knyttet til hverandre; prosesser hvis foreldre er drept, adopteres av init (eller systemd).
$ ps -e --forest
16. Du kan også skrive ut et prosestre for en gitt prosess som denne.
$ ps -f --forest -C sshdOR$ ps -ef --forest | grep -v grep | grep sshd
Tråd for utskriftsprosess
17. For å skrive ut alle tråder i en prosess, bruk -H
-flagget, dette viser LWP (lettvektsprosess) samt NLWP (antall lettvektsprosess) kolonnene.
$ ps -fL -C httpd
Angi tilpasset utdataformat
Ved hjelp av alternativene -o eller –format, lar ps deg bygge brukerdefinerte utdataformater som vist nedenfor.
18. For å liste alle formatspesifikatorer, inkluder L
flagget.
$ ps L
19. Kommandoen nedenfor lar deg se PID, PPID, brukernavn og kommando for en prosess.
$ ps -eo pid,ppid,user,cmd
20. Nedenfor er et annet eksempel på et tilpasset utdataformat som viser filsystemgruppen, god verdi, starttid og forløpt tid for en prosess.
$ ps -p 1154 -o pid,ppid,fgroup,ni,lstart,etime
21. For å finne et prosessnavn ved hjelp av PID.
$ ps -p 1154 -o comm=
Vis foreldre- og underordnede prosesser
22. For å velge en bestemt prosess ved navn, bruk -C-flagget, dette vil også vise alle underordnede prosesser.
$ ps -C sshd
23. Finn alle PID-er for alle forekomster av en prosess, nyttige når du skriver skript som trenger å lese PID-er fra en std-utgang eller fil.
$ ps -C httpd -o pid=
24. Sjekk gjennomføringstid for en prosess.
$ ps -eo comm,etime,user | grep httpd
Utdataene nedenfor viser at HTTPD-tjenesten har kjørt i 1 timer, 48 minutter og 17 sekunder.
Feilsøking Linux-systemytelse
Hvis systemet ditt ikke fungerer som det skal, for eksempel hvis det er uvanlig sakte, kan du utføre noen feilsøking av systemet som følger.
26. Finn toppløpende prosesser etter høyest minne og CPU-bruk i Linux.
$ ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | headOR$ ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%cpu | head
27. For å drepe en Linux-prosess / applikasjon som ikke svarer eller en prosess som bruker høy CPU-tid.
Finn først PID-en for den ikke-reagerende prosessen eller applikasjonen.
$ ps -A | grep -i stress
Bruk deretter kill-kommandoen for å avslutte den umiddelbart.
$ kill -9 2583 2584
Skriv ut sikkerhetsinformasjon
28. Vis sikkerhetskontekst (spesielt for SELinux) slik.
$ ps -eMOR$ ps --context
29. Du kan også vise sikkerhetsinformasjon i brukerdefinert format med denne kommandoen.
$ ps -eo euser,ruser,suser,fuser,f,comm,label
Utfør sanntids prosessovervåking ved hjelp av Watch Utility
30. Til slutt, siden ps viser statisk informasjon, kan du bruke klokkeverktøyet til å utføre sanntids prosessovervåking med repeterende utdata, vist etter hvert sekund som i kommandoen nedenfor (spesifiser en tilpasset ps-kommando for å oppnå målet ditt).
$ watch -n 1 "ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | head"
Viktig: ps viser bare statisk informasjon. Hvis du vil vise ofte oppdaterte utdata, kan du bruke verktøy som htop; topp og blikk: de to siste er faktisk verktøyet for overvåking av Linux-ytelse.
Du vil kanskje også lese disse følgende relaterte artiklene.
- Slik finner du et prosessnavn ved hjelp av PID-nummer i Linux
- Finn toppløpende prosesser etter høyest minne og CPU-bruk i Linux
- En guide til Kill, Pkill og Killall-kommandoer for å avslutte en prosess i Linux
- Hvordan finne og drepe løpende prosesser i Linux
- Slik starter du Linux-kommandoen i bakgrunnen og løsner prosessen i terminalen