50% rabat alle planer, begrænset tid. Start kl $2.48/mo
10 min tilbage
Servere & OS

Mastering Process Management – ​​Linux ps aux Command

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

Har du mindst fem andre faner åbne i din browser, der prøver at finde svaret på et Linux-problem, du er stødt på?
Denne adfærd er ikke specifik for dig eller mennesker generelt. Maskiner multitasker også. Og ligesom dig er Linux også en multitasker og har flere processer i gang på samme tid. Uanset om du er en udvikler, der bruger Linux professionelt, eller en normal bruger, der arbejder med Linux til dine daglige aktiviteter, bør du være i stand til at forstå disse parallelle processer for at bevare fuld kontrol over dit system. Processtyring og systemkontrol er væsentlige aspekter ved at køre et Linux-system.

For effektivt at styre processer, der kører på systemet, se, hvad der sker i realtid, have en generel idé om alle baggrundsprocesser og kontrollere systemressourcer, kræver du teknisk viden om processtyring. ps aux-kommandoen er en kraftfuld kommando, der spiller en afgørende rolle i processtyring og systemkontrol. I dette indlæg lærer vi mere om kommandoen ps aux og dens anvendelsestilfælde. Vi vil også dække det grundlæggende i, hvordan Linux-processer fungerer.

Forståelse af processtyring i Linux

Når vi arbejder med Linux, er de fleste af vores interaktioner med systemet i form af kommandoer. I Linux er en proces udførelse af en kommando. Linux-processtyring involverer at manipulere de processer, som en kommando har startet. Du kan afslutte en proces, starte en proces eller genoptage de processer, der er blevet afsluttet. Du kan også manipulere kommandoer, der er i gang.

Der er to typer Linux-processer:

  • Forgrundsprocesser
  • Baggrundsprocesser

Linux-forgrundsprocesser

En forgrundsproces er en proces, der udføres aktivt og typisk kræver konstant interaktion i realtid med brugeren. Når en forgrundsproces er i gang, sættes udførelsen af ​​andre processer på pause. Så du kan ikke køre andre kommandoer. En forgrundsproces modtager input fra tastaturet som standard input eller stdin. For at forhindre yderligere forvirring er stdin og stdout Linux-datastrømme sammen med stderr. Det er dybest set, hvordan brugeren interagerer med processen og leverer data til den. Der er standard output eller stdout, der er produceret af processen baseret på dens funktionalitet og input. Forgrundsprocesser er standardudførelsesmåden i Linux.

Linux baggrundsprocesser

Baggrundsprocesser er det stik modsatte af forgrundsprocesser, da de ikke kræver brugerinteraktion og ikke udelukkende optager terminalens fulde plads, hvilket giver mulighed for at udføre andre processer. Typen af ​​input og output af baggrundsprocesser er også forskellig. De tager normalt ikke stdin. Resultaterne af processen kan dog vises som stdout. Visning af output fra baggrundsprocesser sker samtidig med output fra andre forgrundsprocesser. Så du kan se fremskridtene eller resultaterne af baggrundsprocessen uden at afbryde andre vigtige handlinger.

Da udførelse af en lang række opgaver i Linux er afhængig af kommandolinjen, kan forgrundsprocesser være besværlige, mens kørsel af processer i baggrunden frigør din terminal fra at arbejde med andre opgaver. Så at placere en forgrundsopgave i baggrunden er en rimelig ting at gøre her. For at sende en proces i baggrunden du bør først stoppe det i at blive henrettet i forgrunden. Dette gøres blot ved at trykke CTRL+Z. Så ved at skrive bg-kommandoen, vil den afsluttede proces køre igen i baggrunden. Kommandoen fg vil vende processen og bringe den i forgrunden.

Processtatus; Syntaks, kommandoer og fortolkning af output

Effektiv processtyring i Linux kræver forståelse af status for processer, der kan overvåges af kommandoen ps aux. Men før vi dykker dybere ned i ps aux-kommandoen, lad os lære om forskellige processtatusser. Selvom der er flere typer processer og processtatusser, er her en tabel over de mest almindelige:

Processtatus beskrivelse
Løb(R) Processen kører i øjeblikket og optager CPU-ressourcer.
Sovende Afbrydelig (S) Processen venter på, at en specifik input eller begivenhed begynder at køre igen. Det bruger i øjeblikket ikke CPU-ressourcer. Når ressourcer er tilgængelige, eller der gives signaler, starter processen igen.
Uafbrydelig (D) Ligesom en proces, der er i afbrydelig dvale, bruger en uafbrydelig soveproces ikke CPU-ressourcer. Den eneste forskel er, at den ikke reagerer på signaler, den kommer først til live igen, når der er ressourcer til rådighed.
Stoppet (T) Et brugerinput eller en specifik hændelse har sat processen på pause. En proces i standset tilstand bruger ingen CPU-ressourcer.
Død (X) Processen er afsluttet og eksisterer ikke længere.

En god forståelse af disse processtatusser er et afgørende aspekt af effektiv styring og fejlfinding af Linux-systemer. Lad os nu dække syntaksen og kommandoerne til at opnå processtatus i Linux, samt hvordan man fortolker outputtet.

Syntaks og kommandoer til at opnå processtatus

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

ps [process name]

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

aux: Denne indstilling viser en omfattende liste over alle processer, der kører på systemet. Det giver information såsom proces-id'er (PID'er), overordnede proces-id'er (PPID'er), CPU- og hukommelsesbrug og processtatusser. Outputtet fra ps aux-kommandoen er meget pænere, har mere læsbarhed og indeholder masser af mere nyttig information end den grundlæggende ps-kommando.

ef: Denne indstilling viser en fuldformatliste over processer med ekstra detaljer, inklusive proceshierarkiet som en trælignende struktur.

l: Denne mulighed giver et langt listeformat, der præsenterer mere detaljerede oplysninger om processer.

Forståelse af output

Når du udfører kommandoen ps 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-brug, hukommelsesbrug, processtatus, terminaltype og kommandonavn.

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

PID: Denne kolonne viser processens unikke ID.

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

TID: Denne kolonne er en indikator for, hvor meget CPU der er brugt af denne proces i minutter og sekunder.

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

Ved at analysere informationen fra ps-kommandoen får du en dybere indsigt i din Linux-maskines adfærd.

Avancerede ps-teknikker til processtyring med ps-kommandoen

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

1. Processortering

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

Her er et eksempel på sorteringsprocesser 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 output.

ps aux sort pid

2. Visualisering af procestræ

Hvis du ønsker at se forældre-barn-forholdet mellem processer klart, kan du bruge kommandoen ps med skov-indstillingen.

ps -aux --forest

forældre-barn-relation af Linux-processer

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

pstree [pid or username]

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

3. Filtreringsprocesser

Forestil dig, at du vil arbejde med en bestemt gruppe af processer; for eksempel, du ønsker at liste alle processerne for en af ​​brugerne. Filtreringsprocesser baseret på en karakteristik kan udføres ved hjælp af kommandoen ps. I dette eksempel filtrerede vi processerne ud fra brugernavn.

ps -u [username]

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

Og kommandoen ps aux grep kan filtrere processerne baseret på ethvert mønster eller nøgleord, som du giver kommandoen. Tag et kig på koden nedenfor som et eksempel:

ps aux grep kommando eksempel

Denne kommando viser først alle processerne og sender outputtet til grep-kommandoen for at filtrere den lange liste baseret på proces-id. På billedet ovenfor kan du se en liste over alle de processer, der har tallet 15 i deres information.

For yderligere information om ps-kommandoen og dens muligheder kan du læse manualsiden for denne kommando. Koden nedenfor viser manualsiden for dig:

man ps

Håndtering af opgaveprioritet i Linux

For bedre at kunne forklare, hvordan processtyring faktisk fungerer i Linux, bør vi også dække procesprioritet og hvordan man ændrer det. Forestil dig en situation, hvor du kører flere processer, og CPU'en er overbelastet med opgaver. Hvis du vil administrere dine ressourcer, så de fungerer korrekt i denne situation, skal du ændre prioriteringen af ​​de kørende opgaver. Hver proces i Linux har en prioritetsværdi. Denne værdi hjælper kernen med at prioritere opgaver. Prioritetstallet går fra -20 til 19, hvor 19 er den mindst vigtige opgave og -20 er den mest presserende. Processen med den højeste prioritet modtager mere CPU-tid sammenlignet med andre processer. Prioritetsværdierne omtales ofte som "pæne" værdier, hvor lavere pæne værdier har højere prioritet.

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

Men før vi ændrer prioriteringen af ​​processer, lad os undersøge det første brugstilfælde af ps-kommandoen.

  • Viser den aktuelle prioritet for alle processer ved hjælp af ps kommando:

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

 

ps -eo pid,cmd,nice

At få prioritet af alle processer ved hjælp af ps-kommandoen

  • Start af en proces med en 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 [prioritet] med den ønskede negative værdi, der repræsenterer prioritetsniveauet, og [kommando] med den kommando, du vil udføre.

Her er et eksempel:

starte en proces med standard høj prioritet

  • Ændring af prioritet 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 vil have en kraftfuld Linux-maskine til at udføre alle mulige opgaver på, en Linux VPS er den bedste løsning for dig. Cloudzy tilbyder forskellige Linux VPS-planer med din foretrukne distro forudinstalleret. Med masser af fordelagtige egenskaber som 24/7 support, en 30-dages pengene-tilbage-politik og en 99,95% oppetidsgaranti, 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 selv en økonomi eller premium Linux VPS til hosting af dit websted eller fjernskrivebord til den billigste pris derude. VPS Kører på Linux KVM for øget effektivitet og arbejder på kraftfuld hardware med NVMe SSD-lagring for øget hastighed.

Læs mere

Konklusion

Afslutningsvis er det et must at beherske processtyring og systemkontrol for systemadministratorer, Linux-entusiaster, der er ivrige efter at lære mere, og almindelige Linux-brugere. At lære om ps-kommandoens muligheder og funktionaliteter kan lette din vej i styring af læreprocesser. Det er grunden til, at denne artikel diskuterede vigtige brugstilfælde af ps-kommandoen samt at give læserne en introduktion til Linux-processer.

FAQ

Hvad er kommandoen ps aux i Linux?

Kommandoen ps aux Linux er en almindeligt brugt kommando i Linux til at indhente information om kørende processer. Det kan give en omfattende liste over processer i et brugervenligt format, inklusive deres proces-id'er (PID'er), CPU- og hukommelsesbrug, eksekveringstilstande og andre vitale detaljer.

Hvad er to typer processer i Linux?

Forgrundsprocesser og baggrundsprocesser. Forgrundsprocesser optager terminalen, mens de kører, og tillader ikke andre henrettelser. 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 at se. For eksempel giver kommandoen Linux ps aux detaljerede oplysninger om alle kørende processer.

Dele

Mere fra bloggen

Fortsæt med at læse.

Bedste selv-hostede apps, du kan køre med Cosmos Cloud-forsidebillede med app-paneler omkring et Cosmos-dashboard.
Servere & OS

Bedste selv-hostede apps, du kan køre med Cosmos Cloud: Filer, medier, adgangskoder, automatisering og mere!

Måske har du konfigureret Cosmos Cloud og vil nu se, hvilke apps der passer godt til den, eller måske har du ikke engang besluttet dig for Cosmos endnu og vil bare se, hvor godt den passer til dit arbejde.

Nick SilverNick Silver 16 min læst
Portainer vs Cosmos Cloud til styring af Docker Apps-cover med hybrid opsætningsdiagram og neon ops vs adgangsblokke.
Servere & OS

Portainer vs Cosmos Cloud: Bedst egnet til Docker App Management

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

Nick SilverNick Silver 14 min læst
Cosmos Cloud vs CasaOS vs Umbrel funktionsgrafik, der viser tre selv-hostede stier inde i en abstrakt cloud-netværksverden.
Servere & OS

Cosmos Cloud vs CasaOS vs Umbrel: Hvilken Self-Hosted Platform passer til din opsætning?

Det korte svar er, at CasaOS stadig er det nemmeste sted at begynde, Umbrel har den reneste kurerede følelse, og Cosmos Cloud giver mere mening, når du vil have strammere kontrol over domaet

Nick SilverNick Silver 11 min læst

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

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