ps kommando og ps kommando forklaret
denne vejledning forklarer, hvordan du bruger ps-kommandoen. Det giver også 10 + praktiske eksempler på ps-kommandoen. Lær hvordan du læser output fra ps-kommandoen i detaljer.
en kort introduktion af ps-kommandoen
kommandoen ps (process status) er en af de mest anvendte kommandoer. Normalt bruges det til at få de mere og detaljerede oplysninger om en bestemt proces eller alle processer. For eksempel bruges det til at vide, om en bestemt proces kører eller ej, hvem der kører hvilken proces i systemet, hvilken proces der bruger højere hukommelse eller CPU, hvor længe en proces kører osv.
LAB Setup
til praksis skal du starte nogle applikationer og holde dem kørende. Skift brugerkonto og gentag den samme proces.
Antag nu, at du er systemadministrator og er systemadministrator, du vil vide, hvad der foregår i systemet.I dette tilfælde kan du bruge ps-kommandoen til at få de nødvendige oplysninger.
brug af ps-kommandoen
Åbn terminal og kør ps-kommandoen
uden nogen mulighed og argument viser ps-kommandoen kun processen, der kører under den loggede brugerkonto fra den aktuelle terminal.
Du kan undre dig over, hvorfor ps-kommandoen viser to processer, mens vi ikke har udført nogen proces fra denne terminal hidtil.
Nå… første proces viser den proces, hvorunder denne terminal åbnes. Denne proces forbliver åben, indtil terminalen åbnes.
anden proces viser den sidst udførte kommando i denne terminal.
angivelse af indstillinger med ps-kommandoen
ps-kommandoen accepterer indstillinger i tre stilarter.i denne stil leveres indstillinger uden nogen førende bindestreg (f.eks.
at& t unik stil: – i denne stil leveres indstillinger med en førende bindestreg (f.eks.i denne stil leveres indstillinger med dobbelt førende bindestreger (såsom “–sort”).
selvom PS-kommandoen accepterer indstillinger i blandingsstil, skal du altid kun bruge en stil til at specificere indstillingerne.
grundlæggende eksempler på ps-kommandoen
Hvis du vil udskrive alle kørende processer i systemet, skal du bruge en af følgende kommandoer.
$ps –A$ps -e
indstillingerne A og e giver opsummeret oversigt over løb processes.To udskriv den detaljerede oversigt, Brug indstillingerne f (fuldt format) og F (ekstra fuldt format) med disse indstillinger.
for at se den samme output i BSD unik stil, skal du bruge indstillingerne.
kommandoen “ps-kommando” er den mest anvendte kommando af administratorer. Før vi går videre til det næste eksempel, lad os forstå de indstillinger, der bruges i denne kommando i detaljer.
PS kommandoindstillinger
a:- denne indstilling udskriver de kørende processer fra alle brugere.
u: – denne indstilling viser kolonnen bruger eller ejer i output.
:- Denne indstilling udskriver de processer, der ikke er blevet udført fra terminalen.
samlet set udskriver optionerne “al den kørende proces i systemet, uanset hvor de er blevet udført.
kommandoudgangsbeskrivelseskolonne efter kolonne
kolonne | beskrivelse |
bruger | den brugerkonto, under hvilken denne proces kører |
PID | proces-ID for denne proces |
%CPU | CPU-tid brugt af denne proces (i procent). |
%MEM | fysisk hukommelse brugt af denne proces (i procent).virtuel hukommelse, der bruges af denne proces (i bytes). |
RSS | Resident Set Størrelse, den ikke-udskiftelige fysiske hukommelse, der bruges af denne proces (i KiB) |
TTY | Terminal, hvorfra denne proces startes. Spørgsmålstegn (?) tegn repræsenterer, at denne proces ikke startes fra en terminal. |
STAT | proces tilstand. Forklaret i næste tabel. |
START | starttid og dato for denne proces |
tid | total CPU-tid brugt af denne proces |
kommando | kommandoen med alle dens argumenter, der startede denne proces |
PS stat kode med beskrivelse
d | uafbrydelig søvn (normalt IO) |
r | running or runnable (On run kø) |
s | afbrydelig søvn (venter på en begivenhed at fuldføre) |
t | stoppet af jobkontrolsignal |
t | stoppet af debugger under sporing |
h | Personsøgning (ikke gyldig siden 2.6.død (bør aldrig ses) |
død (bør aldrig ses) | |
hedengangne (“TD”) proces, afsluttet, men ikke høstet af sin forælder | |
< | høj prioritet (ikke rart for andre brugere) |
n | lav prioritet (rart for andre brugere) |
l | har sider låst i hukommelsen (til realtid og brugerdefineret io) |
s | er en sessionsleder |
l | er multi-threaded (ved hjælp af clone_thread, som nptl pthreads do) |
+ | is i forgrundsprocesgruppen |
nøglepunkter
- CPU-brug udtrykkes som den procentdel af tiden, der bruges i løbet af hele processens levetid.
- felterne størrelse og RSS tæller ikke nogle dele af en proces, herunder sidetabeller, kernel stack, struct thread_info og struct task_struct.
- størrelse er den virtuelle størrelse af processen (kode+data+stak).
- processer markeret <hedengangne> er døde processer (såkaldte” dyr”), der forbliver, fordi deres forælder ikke har ødelagt dem ordentligt.
- hvis længden af brugernavnet er større end længden af displaykolonnen, vil brugernavnet blive afkortet.
10+ praktiske eksempler på ps-kommandoen
for at vise alle processer, der kører under rodbrugerkontoen, skal du bruge følgende kommando.
$ps -U root -u root
i denne kommando:-
-u: – Vælg processen baseret på ægte bruger-ID eller navn.
-u: – Vælg processen baseret på effektivt bruger-ID eller navn.
RUID (Real User ID) repræsenterer navnet på brugeren, mens EUID (Effective User ID) beskriver den bruger, hvis filadgangstilladelser bruges af processen.
for at vise alle processer, der kører af en bestemt brugerkonto, skal du bruge følgende kommando.
$ps –U –u
for at vise alle processer, der kører under en bestemt gruppe, skal du bruge følgende kommando.
$ps –G
for en detaljeret oversigt kan vi også kombinere –g option med –F option.
$ps –FG
for at vise alle processer i hierarki kan vi bruge følgende kommando.
$ps –A --forest
viser kun specifik kolonne
som standard ps-kommando viser alle kolonner. Hvis vi kun er interesserede i bestemte kolonner,kan vi begrænse output ved at angive de krævede kolonnenavne som argumenter.
for eksempel for kun at se PID -, bruger-og CMD-kolonner kan vi bruge følgende kommando.
$ps –eo pid,user,cmd
find den proces, der bruger den højeste hukommelse
som standard sorterer ps-kommandoen ikke output. Ved at indstille sorteringsrækkefølge til %MEM kan vi finde de processer, der bruger højere minder.
for at indstille sorteringsrækkefølgen bruges –sort= – indstillingen. Vi kan også kombinere denne mulighed med andre muligheder for at få det mere specifikke output.
lad os for eksempel kun vise de specifikke felter og bestille dem efter hukommelsesanvendelser.
$ps –eo pid,user,%mem,cmd --sort=-%mem
begrænsning af output
som standard begrænser ps-kommandoen ikke resultatet i output.Hvis vi kun er interesserede i at kende de tre øverste processer,der bruger den højeste hukommelse, kan vi i stedet for at vise ps-kommandoens output i terminal omdirigere den til hovedkommandoen.
som standard viser hovedkommandoen top 10 linjer fra den angivne kilde.Vi kan tilsidesætte denne standardadfærd ved at specificere de krævede linjenumre.
for kun at vise top tre processer kan vi bruge “-n 4” med hovedkommandoen.
for 3 resultater skal du levere cifferet 4 som argument. Som i ps-kommandos output er den første linje besat af titlerne.
find den proces,der bruger den højeste CPU
ligesom vi fandt ud af de højeste hukommelsesforbrugende processer, kan vi også finde de højeste CPU-forbrugende processer ved at sortere output baseret på CPU-kolonne.For eksempel følgende kommando udskriver top 3 processer bestilt af CPU-forbrug.
$ps –eo pid,user,%cpu,cmd –-sort=-%cpu | head –n 4
Find det samlede antal processer, der kører af en bruger
for at finde ud af det samlede antal processer, der kører af en bruger, skal du bruge følgende kommando
$ps –U –u | wc –l
Leave a Reply