50% rabat alle planer, begrænset periode. Fra kun $2.48/mo
10 min tilbage
Servere og OS

Mestringprocesstyring – Linux ps aux-kommando

Ada Lovegood By Ada Lovegood 10 min læsning Opdateret 11. juli 2024
linux ps aux-kommando

Har du mindst fem andre faner åbne i din browser for at finde svar på et Linux-problem, du er stødt på?
Dette er ikke noget, der kun gælder for dig eller mennesker generelt. Maskiner udfører også flere opgaver på samme tid. Og ligesom dig er Linux også fleroppgave-orienteret med flere processer, der kører samtidigt. Uanset om du er udvikler, der bruger Linux professionelt, eller en almindelig bruger, der arbejder med Linux til daglige opgaver, bør du forstå disse parallelle processer for at have fuld kontrol over dit system. Procestyring og systemkontrol er vigtige aspekter ved drift af et Linux-system.

For effektivt at styre processer, der kører på systemet, se hvad der sker i realtid, få et overblik over alle baggrundsprocesser og kontrollere systemressourcer, skal du have teknisk viden om procestyring. Kommandoen ps aux er en kraftfuld kommando, der spiller en vigtig rolle i procestyring og systemkontrol. I dette indlæg lærer vi mere om ps aux-kommandoen og dens use cases. Vi dækker også grundlaget for, hvordan Linux-processer fungerer.

Forståelse af procestyring i Linux

Når du arbejder med Linux, foregår de fleste interaktioner med systemet gennem kommandoer. I Linux er en proces udførelsen af en kommando. Linux-procestyring handler om at manipulere de processer, som en kommando har startet. Du kan afslutte en proces, starte en proces eller genstarte processer, der er blevet afsluttet. Du kan også manipulere kommandoer, der er i gang.

Der er to typer af Linux-processer:

  • Forgrundprocesser
  • Baggrundsprocesser

Linux-forgrundprocesser

En forgrundproces er en proces, der aktivt bliver udført og typisk kræver konstant og realtids-interaktion med brugeren. Når en forgrundproces er aktiv, pauseres udførelsen af andre processer. Du kan derfor ikke køre andre kommandoer. En forgrundproces modtager input fra tastaturet som standardinput eller stdin. For at undgå forvirring er stdin og stdout Linux-datastrømme sammen med stderr. Det er grundlæggende den måde, som brugeren kommunikerer med processen på og leverer data til den. Der er standardoutput eller stdout, som processen producerer baseret på dens funktionalitet og inputtet. Forgrundprocesser er standardkørselsmodus i Linux.

Linux-baggrundsprocesser

Baggrundsprocesser er det modsatte af forgrundprocesser, da de ikke kræver brugerinteraktion og ikke eksklusivt optager terminalens fulde plads, hvilket tillader udførelse af andre processer. Input- og output-typen for baggrundsprocesser er også anderledes. De tager normalt ikke stdin. Resultaterne af processen kan dog vises som stdout. Visning af output fra baggrundsprocesser foregår samtidigt med output fra andre forgrundprocesser. Du kan således se fremgangen eller resultaterne af baggrundsprocessen uden at afbryde andre vigtige handlinger.

Eftersom udførelse af mange opgaver i Linux afhænger af kommandolinjen, kan forgrundprocesser være problematiske, mens kørsel af processer i baggrunden frigør terminalen til andre opgaver. Det er derfor fornuftigt at placere en forgrundopgave i baggrunden. For at sende en proces til baggrunden skal du først stoppe den fra at blive udført i forgrunden. Dette gøres blot ved at trykke CTRL+Z. Derefter ved at skrive kommandoen bg, vil den afsluttede proces køre igen i baggrunden. Kommandoen fg vil vende processen og bringe den til forgrunden.

Procestilstand. Syntax, kommandoer og fortolkning af output

Effektiv procestyring i Linux kræver forståelse af procestilstanden, som kan overvåges via ps aux-kommandoen. Men før vi går dybere ind i ps aux-kommandoen, skal vi lære om forskellige procestilstande. Selvom der er flere typer af processer og procestilstande, her er en tabel over de mest almindelige:

Processstatus beskrivelse
Kørende(R) Processen kører i øjeblikket og bruger CPU-ressourcer.
I sovende tilstand Afbrydelig (S) Processen venter på et specifikt input eller en begivenhed for at starte igen. Den bruger ikke CPU-ressourcer i øjeblikket. Når ressourcer er tilgængelige, eller signaler gives, starter processen igen.
Uafbrudt (D) Ligesom en proces i interruptibel søvn, bruger en ikkeavbrydelig sovende proces ikke CPU-ressourcer. Den eneste forskel er, at den ikke reagerer på signaler; den kommer kun til live igen, når ressourcer er tilgængelige.
Stoppet(T) Et brugerinput eller en specifik begivenhed har pauseret processen. En proces i stoppet tilstand bruger ikke nogle CPU-ressourcer.
Død(X) Processen er blevet afsluttet og eksisterer ikke længere.

En god forståelse af disse procestilstande er afgørende for effektivt at styre og fejlfinde Linux-systemer. Lad os nu dække syntaksen og kommandoerne for at få procestilstand i Linux samt hvordan man fortolker outputtet.

Syntaks og kommandoer til at få processstatus

Du kan få processstatus i Linux med den grundlæggende syntaks for ps-kommandoen:

ps [process name]

Der er også andre muligheder, der bruges sammen med ps-kommandoen:

til: Denne mulighed viser en omfattende liste over alle processer, der kører på systemet. Den giver oplysninger såsom proces-id'er (PID'er), overordnede proces-id'er (PPID'er), CPU og hukommelsesforbrug samt processtatuser. Outputtet fra ps aux-kommandoen er meget mere overskueligt, har bedre læsbarhed og indeholder meget mere nyttig information end den grundlæggende ps-kommando.

ef: Denne mulighed viser en fuldformat-liste over processer med ekstra detaljer, herunder processhierarkiet som en træagtig struktur.

l: Denne mulighed giver et langt listeformat med mere detaljerede oplysninger om processer.

Forståelse af outputtet

Når du udfører ps-kommandoen med de ønskede muligheder, genererer den et output, der repræsenterer de processer, der i øjeblikket kører på dit system. Outputtet består af kolonner, der viser forskellige procesattributter, herunder proces-id (PID), overordnet proces-id (PPID), CPU-forbrug, hukommelsesforbrug, processetstatus, terminaltype og kommando navn.

Her er en forklaring på, hvad hver af disse kolonner betyder:

PID: Denne kolonne viser procesens unikke id.

TTY: Denne kolonne viser typen af terminal, som brugeren har logget ind på.

TID: Denne kolonne angiver, hvor meget CPU der bruges af denne proces i minutter og sekunder.

CMD: Denne kolonne repræsenterer navnet på den kommando, der startede denne proces.

Ved at analysere de oplysninger, som ps-kommandoen giver, får du en dybere indsigt i opførslen af din Linux-maskine.

Avancerede ps-teknikker til procesadministration med ps-kommandoen

Lad os udforske nogle af ps-kommandoens avancerede funktioner og hvordan de kan bruges effektivt:

1. Processortering

Kommandoen ps aux kan bruges til at sortere det endelige output baseret på forskellige kolonner. Du kan f.eks. sortere processer efter proces-id eller CPU-forbrug for at se dem i en ønsket rækkefølge.

Her er et eksempel på sortering af processer baseret på proces-id ved hjælp af ps aux:

ps aux –-sort pid

Head-kommandoen bruges til kun at få de første fem rækker af outputtet.

ps aux sorter efter pid

2. Procesträvisualisation

Hvis du gerne vil se overordnet-underordnet-relationen mellem processer klart, kan du bruge ps-kommandoen med forest-muligheden.

ps -aux --forest

overordnet-underordnet-forhold mellem Linux-processer

For at se relationerne mellem processer i et træ-lignende mønster kan du også bruge pstree-kommandoen. Denne kommando vil skabe et output, der er mere forståeligt og illustrerer hierarkiet mellem processer perfekt. For at bruge denne kommando skal du skrive følgende kommando:

pstree [pid or username]

Ved at give denne kommando et PID fortæller du kommandoen at betragte denne proces som roden af træet.

3. Filteringsprocesser

Forestil dig, at du gerne vil arbejde med en bestemt gruppe af processer - for eksempel ønsker du at vise alle processer for en bestemt bruger. Du kan filtrere processer baseret på karakteristika ved hjælp af ps-kommandoen. I dette eksempel har vi filtreret processer baseret på brugernavn.

ps -u [username]

filtrering af Linux processer ved hjælp af ps-kommandoen

Kommandoen ps aux grep kan filtrere processer baseret på ethvert mønster eller nøgleord, som du angiver. Se kodeeksemplet nedenfor:

eksempel på ps aux grep kommando

Denne kommando viser først alle processer og sender output til grep-kommandoen for at filtrere listen baseret på proces-ID. I billedet ovenfor kan du se en liste over alle processer, der indeholder tallet 15 i deres informationer.

Hvis du ønsker mere information om ps-kommandoen og dens muligheder, kan du læse kommandoens manualside. Koden nedenfor viser manualsiden:

man ps

Håndtering af opgaveprioritet i Linux

For bedre at forklare, hvordan processstyring fungerer i Linux, bør vi også dække processprioritet og hvordan man ændrer den. Forestil dig en situation, hvor du kører flere processer, og CPU er overbelastet med opgaver. Hvis du vil styre dine ressourcer så de fungerer korrekt i denne situation, skal du ændre prioriteten for de kørende opgaver. Hver proces i Linux har en prioritetsværdi. Denne værdi hjælper kernelen med at prioritere opgaver. Prioritetsnummeret spænder fra -20 til 19, hvor 19 er den mindst vigtige opgave og -20 er den mest presserende. Processen med højeste prioritet får mere CPU tid sammenlignet med andre processer. Prioritetsværdierne omtales ofte som "nice"-værdier, hvor lavere nice-værdier angiver højere prioritet.

Du kan bruge nice- og renice-kommandoer til effektivt at allokere systemressourcer.

Men før du ændrer prioriteten for processer, skal vi udforske det første brugstilfælde for ps-kommandoen.

  • Visning af den aktuelle prioritet for alle processer ved hjælp af ps-kommandoen:

Denne kommando viser alle processer sammen med deres proces-ID'er (PID), kommandonavne og den aktuelle prioritet (nice-værdi):

 

ps -eo pid,cmd,nice

Hent prioriteten for alle processer ved hjælp af ps-kommandoen

  • Start en proces med standard høj prioritet ved hjælp af nice-kommandoen:

Du kan starte en proces med din foretrukne prioritet ved hjælp af denne kommando:

nice -n [priority] [command]

Erstat [priority] med den ønskede negative værdi, der repræsenterer prioritetsniveauet, og [command] med den kommando, du vil udføre.

I'm ready to translate to Danish. Please provide the English text you'd like me to translate.

start af en proces med standard høj prioritet

  • Ændring af prioriteten for en allerede kørende kommando:
renice -n [priority] -p [PID]

Erstat proces-ID'et for den proces, du vil manipulere, med [PID].

Hvis du ønsker en kraftfuld Linux maskine til at udføre alle slags opgaver på, er en Linux VPS den bedste løsning for dig. Cloudzy tilbyder forskellige Linux VPS planer med din foretrukne distribution forudinstalleret. Med masser af gavnlige funktioner som 24/7 support, en 30-dages pengene-tilbage-garanti og en 99,95% uptime-garanti, har Cloudzy formået at holde priserne lave. Vores priser for Linux VPS starter ved kun $4,95/måned.

Linux VPS Hosting

Få dig en økonomi- eller premium Linux VPS til hosting af dit websted eller remote desktop til den billigste pris derude. VPS kører på Linux KVM for øget effektivitet og arbejder på kraftigt hardware med NVMe SSD-lagerplads for øget hastighed.

Læs mere

Konklusion

Samlet set er det afgørende at mestre processstyring og systemkontrol for systemadministratorer, Linux-entusiaster, der er ivrige efter at lære mere, og almindelige Linux-brugere. At lære om mulighederne og funktionaliteterne i ps-kommandoen kan gøre det nemmere at lære om processstyring. Derfor har denne artikel diskuteret vigtige brugstilsnit for ps-kommandoen samt givet læserne en introduktion til Linux-processer.

Ofte stillede spørgsmål

Hvad er ps aux kommandoen i Linux?

ps aux kommandoen i Linux er en hyppigt brugt kommando i Linux til at få oplysninger om kørende processer. Den kan give en omfattende liste over processer i et brugervenligt format, inklusive deres proces-ID'er (PID'er), CPU og hukommelsesforbrug, køretilstande og andre vigtige detaljer.

Hvad er to typer processer i Linux?

Forgrunds- og baggrundsprocesser. Forgrundprocesser optager terminalen under kørsel og tillader ikke andre kørsler. Baggrundsprocesser kører i baggrunden og fylder ikke hele terminalen.

Hvordan kan jeg se listen over processer, der kører på mit Linux-system?

Listen over processer, der kører på dit Linux-system, kan fås ved hjælp af kommandoer som ps, top eller htop. For eksempel giver kommandoen Linux ps aux detaljeret information om alle kørende processer.

Del

Mere fra bloggen

Læs videre.

Bedste Self-Hosted Apps, du kan køre med Cosmos Cloud cover-billede med app-paneler omkring et Cosmos-dashboard.
Servere og OS

Bedste Self-Hosted Apps, du kan køre med Cosmos Cloud: Filer, Media, Adgangskoder, Automatisering og mere!

Maybe har du sat Cosmos Cloud op og vil gerne se, hvilke apps der passer godt sammen med det, eller måske har du slet ikke besluttet dig for Cosmos endnu og vil bare se, hvor godt det passer til dit workflow

Nick SølvNick Sølv 16 min læsning
Portainer vs Cosmos Cloud til administration af Docker apps cover med hybrid setup-diagram og neon ops vs access blocks.
Servere og OS

Portainer vs Cosmos Cloud: Det bedste valg til Docker app-administration

Hvis du allerede kender Docker og bare ønsker en renere måde at køre en voksende app-stack på, her er det korte svar på Portainer vs Cosmos Cloud. Portainer er det stærkere valg for direkte

Nick SølvNick Sølv 14 min læsning
Cosmos Cloud vs CasaOS vs Umbrel feature-grafik, der viser tre self-hosted-veje inden for en abstrakt cloud-netværksverden.
Servere og OS

Cosmos Cloud vs CasaOS vs Umbrel: Hvilken Self-Hosted-platform passer til dit setup?

Det korte svar er, at CasaOS stadig er det nemmeste sted at begynde, Umbrel har det reneste kurerede udtryk, og Cosmos Cloud giver mere mening, når du ønsker tættere kontrol over doma

Nick SølvNick Sølv 11 min læsning

Klar til at implementere? Fra $2,48/mdr.

Uafhængig cloud siden 2008. AMD EPYC, NVMe, 40 Gbps. 14-dages pengene-tilbage-garanti.