30 Nyttige ps-kommandoeksempler for Linux-prosessovervåking
ps (prosessstatus) er et innebygd Unix/Linux-verktøy for å vise informasjon om et utvalg kjørende prosesser på et system: det leser denne informasjonen fra de virtuelle filene i /proc-filsystemet. Det er et av de viktige verktøyene for systemadministrasjon, spesielt under prosessovervåking, for å hjelpe deg å forstå hva som skjer i et Linux-system.
Den har mange alternativer for å manipulere produksjonen, men du vil finne et lite antall av dem praktisk talt nyttig for daglig bruk.
I denne artikkelen skal vi se 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 på ps man-siden.
Vis alle prosesser i gjeldende skall
1. Hvis du kjører ps-kommandoen uten noen 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 -A OR $ ps -e
3. Vis alle prosesser i BSD-format.
$ ps au OR $ ps axu
4. For å utføre en fullformatoppføring, legg til -f
eller -F
-flagget.
$ ps -ef OR $ ps -eF
Vis brukerløpende prosesser
5. Du kan velge alle prosesser som eies av deg (løper av ps-kommandoen, root i dette tilfellet), skriv inn:
$ ps -x
6. For å vise en brukers prosesser etter ekte bruker-ID (RUID) eller navn, bruk -U
-flagget.
$ ps -fU tecmint OR $ ps -fu 1000
7. For å velge en brukers prosesser etter effektiv bruker-ID (EUID) eller navn, bruk -u
-alternativet.
$ ps -fu tecmint OR $ ps -fu 1000
Skriv ut alle prosesser som kjører som rot (ekte og effektiv ID)
8. Kommandoen nedenfor lar deg se hver prosess som kjører med root-brukerprivilegier (reell og 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), skriv inn.
$ ps -fG apache OR $ ps -fG 48
10. For å liste opp alle prosesser som eies av effektivt gruppenavn (eller økt), skriv.
$ ps -fg apache
Vis prosesser etter PID og PPID
11. Du kan liste prosesser etter PID som følger.
$ ps -fp 1178
12. For å velge prosess etter PPID, skriv.
$ ps -f --ppid 1154
13. Gjør et valg ved å bruke en PID-liste.
$ ps -fp 2226,1154,1146
Vis prosesser etter TTY
14. For å velge prosesser etter tty, bruk -t-flagget som følger.
$ ps -t pts/0 $ ps -t pts/1 $ ps -ft tty1
Skriv ut prosesstre
15. Et prosesstre viser hvordan prosesser på systemet er knyttet til hverandre; prosesser hvis foreldre har blitt drept, blir adoptert av init (eller systemd).
$ ps -e --forest
16. Du kan også skrive ut et prosesstre for en gitt prosess som dette.
$ ps -f --forest -C sshd OR $ ps -ef --forest | grep -v grep | grep sshd
Skriv ut prosesstråder
17. For å skrive ut alle trådene i en prosess, bruk -L
-flagget, dette vil vise kolonnene LWP (lettvektsprosess) samt NLWP (antall lettvektsprosesser).
$ ps -fL -C httpd
Angi tilpasset utdataformat
Ved å bruke -o- eller -formatalternativene lar ps deg bygge brukerdefinerte utdataformater som vist nedenfor.
18. For å liste alle formatspesifikasjoner, inkluderer 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 filsystemgruppe, fin verdi, starttid og medgått tid for en prosess.
$ ps -p 1154 -o pid,ppid,fgroup,ni,lstart,etime
21. For å finne et prosessnavn ved å bruke PID.
$ ps -p 1154 -o comm=
Vis foreldre- og underordnede prosesser
22. For å velge en spesifikk prosess etter navnet, bruk flagget -C, dette vil også vise alle underordnede prosesser.
$ ps -C sshd
23. Finn alle PID-er for alle forekomster av en prosess, nyttig når du skriver skript som trenger å lese PID-er fra en standardutgang eller fil.
$ ps -C httpd -o pid=
24. Sjekk utførelsestiden for en prosess.
$ ps -eo comm,etime,user | grep httpd
Utdataene nedenfor viser at HTTPD-tjenesten har kjørt i 1 time, 48 minutter og 17 sekunder.
Feilsøk Linux-systemytelse
Hvis systemet ditt ikke fungerer som det skal være, for eksempel, hvis det er uvanlig tregt, kan du utføre noe systemfeilsøking som følger.
26. Finn de mest populære prosessene etter høyeste minne- og CPU-bruk i Linux.
$ ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | head OR $ ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%cpu | head
27. For å drepe Linux-prosesser/applikasjoner som ikke reagerer eller enhver prosess som bruker høy CPU-tid.
Finn først PID-en til prosessen eller applikasjonen som ikke svarer.
$ ps -A | grep -i stress
Bruk deretter kill-kommandoen for å avslutte den umiddelbart.
$ kill -9 2583 2584
Skriv ut sikkerhetsinformasjon
28. Vis sikkerhetskontekst (spesifikt for SELinux) som dette.
$ ps -eM OR $ ps --context
29. Du kan også vise sikkerhetsinformasjon i et brukerdefinert format med denne kommandoen.
$ ps -eo euser,ruser,suser,fuser,f,comm,label
Utfør prosessovervåking i sanntid ved å bruke 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 kun statisk informasjon, for å se ofte oppdaterte utdata kan du bruke verktøy som blikk: de to siste er faktisk overvåkingsverktøy for Linux-systemytelse.
Du vil kanskje også lese følgende relaterte artikler.
- Hvordan finne et prosessnavn ved å bruke PID-nummer i Linux
- Finn de mest populære prosessene etter høyeste minne- og CPU-bruk i Linux
- En guide til Kill-, Pkill- og Killall-kommandoer for å avslutte en prosess i Linux
- Hvordan finne og drepe kjørende prosesser i Linux
- Hvordan starte Linux-kommando i bakgrunnen og frakoble prosess i terminal
Det er alt for nå. Hvis du har noen nyttige eksempler på ps-kommandoer å dele (ikke glem å forklare hva det gjør), bruk kommentarskjemaet nedenfor.