Linux-kommandolinjen i dybden · Lektion

Håndtering af processer: `kill`, `bg`, `fg`

Lær effektivt at afslutte, sætte på pause og genoptage processer fra kommandolinjen.

Lektion 2 af 411 trin

Håndtering af processer: `kill`, `bg`, `fg` er en gratis Linux-kommandolinjen i dybden-lektion på CoddyKit. Dette er lektion 2 af 4. Du kan læse hele lektionen gratis nedenfor — og derefter øve dig praktisk i browseren med en indbygget kodeeditor og en AI-vejleder, der er tilgængelig døgnet rundt. Den er en del af læringsforløbet i Linux-kommandolinjen i dybden, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Linux-kommandolinjen i dybden-kurset indeholder 4 lektioner i alt.

Introduktion til processtyring

I Linux kaldes alle programmer, der kører, for en proces. Håndtering af disse processer er afgørende for systemets effektivitet og fejlfinding.

I denne lektion lærer du at tage kontrol over processer: sætte dem på pause, sende dem i baggrunden, hente dem frem igen og endda afslutte dem, når de ikke fungerer korrekt.

Grundlæggende om kommandoen `kill`

Kommandoen kill bruges til at sende signaler til processer. Den bruges primært til at afslutte processer.

For at bruge kill skal du kende proces-id'et (PID) for målprocessen. Du kan finde PID'er ved hjælp af kommandoer som ps (gennemgået i en tidligere lektion).

ps aux | grep sleep

Skånsom afslutning: `SIGTERM`

Som standard sender kill signalet SIGTERM (signal 15). Det er en høflig anmodning til en proces om at afslutte.

Et veldesignet program opfanger SIGTERM, udfører den nødvendige oprydning (f.eks. gemmer filer) og afslutter derefter på en kontrolleret måde.

sleep 30 &
# Use 'ps' to find the PID of 'sleep 30'
# Example: kill <PID_OF_SLEEP>

Tvungen afslutning: `SIGKILL` (-9)

Nogle gange ignorerer en proces SIGTERM og bliver ufølsom eller "fastfrosset". I sådanne tilfælde skal du bruge et stærkere signal: SIGKILL (signal 9).

SIGKILL afslutter straks processen uden at give den mulighed for at rydde op. Brug det kun som sidste udvej!

sleep 60 &
# Use 'ps' to find the PID of 'sleep 60'
# Example: kill -9 <PID_OF_SLEEP>

Sæt processer på pause med Ctrl+Z

Du kan midlertidigt sætte en kørende proces i forgrunden på pause ved hjælp af tastaturgenvejen Ctrl+Z.

Dette sender signalet SIGSTOP, sætter processen på pause og giver kontrollen tilbage til din shell. Processen er stadig i hukommelsen, men udfører ikke noget.

sleep 120
# Type 'sleep 120' and then press Ctrl+Z
# You will see '[1]+  Stopped  sleep 120'

Vis job med `jobs`

Når du sætter en proces på pause eller sender den i baggrunden, bliver den til et "job". Du kan vise alle aktuelle job, som din shell administrerer, ved hjælp af kommandoen jobs.

Hvert job får tildelt et jobnummer, som er nyttigt, når du skal henvise til det med andre kommandoer.

sleep 30
# Press Ctrl+Z
jobs

Send et job i baggrunden: `bg`

En proces, der er sat på pause, kører ikke. Brug kommandoen bg for at få den til at køre i baggrunden uden at optage din terminal.

Du kan henvise til jobbet ved hjælp af dets jobnummer (f.eks. bg %1). Processen fortsætter med at køre uden at vise noget.

sleep 60
# Press Ctrl+Z
jobs
bg %1
jobs

Hent et job frem i forgrunden: `fg`

Hvis du har en proces, der kører i baggrunden, eller en proces, der er sat på pause, kan du hente den frem i forgrunden og interagere med den ved hjælp af kommandoen fg.

Ligesom med bg angiver du jobnummeret (f.eks. fg %1) for at hente det bestemte job frem.

sleep 60 &
jobs
fg %1
# Press Ctrl+C to stop it or Ctrl+Z to suspend it again.

Kombination af processtyring

Disse kommandoer arbejder sammen og giver dig fuld kontrol over processer:

  • Start en opgave: nano
  • Sæt den på pause: Ctrl+Z
  • Flyt den til baggrunden: bg %1
  • Start en anden opgave: sleep 100
  • Sæt den på pause: Ctrl+Z
  • Vis alle job: jobs
  • Hent nano frem i forgrunden: fg %1
  • Afslut nano: Ctrl+C
  • Afslut sleep: kill %2

Hurtig kontrol

Du har startet et program, og det reagerer slet ikke. Du kan ikke engang lukke det med Ctrl+C. Du kender dets proces-id (PID).

Hvilken kommando er mest effektiv til straks at afslutte denne genstridige proces?

Opsummering: Processtyring

Godt klaret! Du har lært at håndtere processer effektivt:

  • kill: Sender signaler for at afslutte processer.
  • kill -9: Afslutter en proces med tvang.
  • Ctrl+Z: Sætter en proces i forgrunden på pause.
  • jobs: Viser job i baggrunden og job, der er sat på pause.
  • bg: Sender et job, der er sat på pause, i baggrunden.
  • fg: Henter et job i baggrunden frem i forgrunden.

Disse kommandoer er afgørende for at bevare kontrollen over dit Linux-miljø.

Gratis at komme i gang

Lær Linux-kommandolinjen i dybden med en AI-underviser — gratis

Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.

Kurser
12
Lektioner
48

Ofte stillede spørgsmål

Er lektionen “Håndtering af processer: `kill`, `bg`, `fg`” gratis?

Ja — hele teksten til “Håndtering af processer: `kill`, `bg`, `fg`” kan læses gratis her på nettet. Hvis du vil øve dig interaktivt med en indbygget kodeeditor og en AI-vejleder døgnet rundt og få adgang til resten af Linux-kommandolinjen i dybden-kurset, skal du opgradere til CoddyKit PRO. Linux-kommandolinjen i dybden-kurset indeholder 4 lektioner i alt.

Hvad lærer jeg i “Håndtering af processer: `kill`, `bg`, `fg`”?

Lær effektivt at afslutte, sætte på pause og genoptage processer fra kommandolinjen. Du øver dig i Linux-kommandolinjen i dybden med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.

Skal jeg have erfaring for at begynde på Linux-kommandolinjen i dybden?

Der kræves ingen tidligere erfaring. Linux-kommandolinjen i dybden på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 2 af 4.

Hvor lang tid tager lektionen “Håndtering af processer: `kill`, `bg`, `fg`”?

De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.

Kan jeg skrive og køre kode i denne Linux-kommandolinjen i dybden-lektion?

Ja. Alle Linux-kommandolinjen i dybden-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.

Alle lektioner i dette kursus

  1. Forstå processer: `ps`, `top`, `htop`
  2. Håndtering af processer: `kill`, `bg`, `fg`
  3. Overvågning af systemressourcer: `df`, `du`, `free`
  4. Procesprioriteter med nice, renice og signaler
← Tilbage til Linux-kommandolinjen i dybden