Articles

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.

lab-opsætning til praksis med ps-kommando

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

ps-kommandoen uden mulighed og argument

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

ps-A og ps-E kommandoer

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.

PS-ef og ps-af kommandoer

for at se den samme output i BSD unik stil, skal du bruge indstillingerne.

ps-kommando

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.

ps-u-u kommando

for at vise alle processer, der kører af en bestemt brugerkonto, skal du bruge følgende kommando.

$ps –U –u 

ps kommando Vis alle processer, der kører under enkelt brugerkonto

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 

ps-FG kommando

for at vise alle processer i hierarki kan vi bruge følgende kommando.

$ps –A --forest

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

ps visning Begrænset kolonne

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

ps output Sorter efter hukommelsesanvendelser

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.

ps begrænsende output

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

ps output Sorter efter cpu-anvendelser

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