Avslutning av prosesser i Linux: En omfattende veiledning
Vi har alle opplevd de frustrerende øyeblikkene når datamaskinen vår går ekstremt tregt og sliter med å utføre selv de mest grunnleggende oppgavene. I Windows har man tilgang til Oppgavebehandling for å overvåke og avslutte prosesser som unødvendig bruker opp minne. Men Linux gir et langt større utvalg av kommandolinje- og grafiske verktøy for å håndtere slike situasjoner. Denne artikkelen vil utforske ulike metoder for å avslutte prosesser i Linux, både ved hjelp av kommandolinjen (CLI) og med grafiske grensesnitt (GUI).
Hva er en prosess i Linux?
I Linux, refererer en «prosess» til en aktiv instans av et program som kjører. Hver kjørbare fil kalles et program. Når et program startes, genereres en prosess, og hver prosess får tildelt et unikt 5-sifret identifikasjonsnummer, kjent som «prosess-ID». Når en prosess avsluttes, enten naturlig eller ved tvang, blir prosess-ID-en tilgjengelig for den neste prosessen som opprettes.
Avslutte prosesser via kommandolinjen
Selv om terminalen kan virke skremmende i starten, spesielt sammenlignet med grafiske verktøy, blir prosesshåndtering raskt mer tilgjengelig når man forstår de ulike kommandoene og deres alternativer.
Avslutningssignaler
Når man prøver å avslutte en prosess i Linux, uavhengig av om det gjøres gjennom GUI eller CLI, sender kjernen et avslutningssignal til den aktuelle prosessen. Prosessen reagerer deretter basert på signalet som mottas. Hvert signal har et unikt numerisk ID. De vanligste signalene er:
Signal | Numerisk verdi | Beskrivelse |
SIGHUP | 1 | Signal Hangup. Sendes når terminalen lukkes. |
SIGINT | 2 | Signal Interrupt. Sendes når brukeren manuelt avslutter prosessen. |
SIGKILL | 9 | Signal Kill. Brukes for å avslutte en prosess umiddelbart. |
SIGTERM | 15 | Signal Termination. Brukes for å avslutte en prosess og frigi de brukte ressursene. |
SIGSTOP | 19 (ARM, x86), 17 (ALPHA), 23 (MIPS), 24 (PA-RISC) | Signal Stop. Brukes for å sette en prosess på pause og gjenoppta den senere. |
De mest brukte signalene er SIGKILL (9) og SIGTERM (15).
Identifisere prosess-ID-er
Før en prosess avsluttes, er det viktig å vite detaljer som prosess-ID og kjøretid. Kommandoen ps
gir en oversikt over aktive prosesser:
ps
Med ps
må man manuelt søke gjennom en lang liste. For å effektivisere dette, kan man bruke grep
i kombinasjon med ps
:
ps | grep <prosessnavn>
Kommandoen pidof
viser kun prosess-ID-en:
pidof <prosessnavn>
Avslutte prosesser med kill
-kommandoen
kill
er den mest brukte kommandoen for å avslutte prosesser i Linux. Syntaksen er:
kill <signal> <prosess_id>
Parameteren <signal>
er valgfri. Hvis ikke spesifisert, sender kill
som standard SIGTERM (15). Man kan bruke enten signalets nummer eller navn.
Avslutte prosesser med pkill
-kommandoen
pkill
er et alternativ til kill
, der man kan søke etter prosesser basert på et mønster i stedet for prosess-ID. Syntaksen er:
pkill <alternativer> <mønster>
Vanlige alternativer inkluderer:
-n
: Velger den siste matchende prosessen.-u
: Velger prosesser som eies av en bestemt bruker.-x
: Velger kun prosesser som nøyaktig matcher mønsteret.
Dette er spesielt nyttig i situasjoner hvor flere brukere kjører samme program.
Eksempel på bruk av pkill
for å avslutte alle «gedit» prosesser som tilhører brukeren «intel»:
pkill -u intel gedit
Avslutte prosesser med killall
-kommandoen
killall
fungerer som kill
, men avslutter alle prosesser som matcher et spesifikt prosessnavn, uavhengig av brukeren. Den sender som standard SIGTERM signalet. killall
kan ikke avslutte seg selv, men den kan avslutte andre instanser av killall
. Syntaksen er:
killall <alternativer> <prosessnavn>
Vanlige alternativer inkluderer:
-r
: Tolker prosessnavnet som et regex-mønster.-u
: Avslutter prosesser som eies av en spesifikk bruker.-o
: Avslutter prosesser eldre enn et spesifikt tidspunkt.-y
: Avslutter prosesser yngre enn et spesifikt tidspunkt.
Et eksempel på bruk av killall
for å avslutte alle «sleep» prosesser:
killall -v sleep
Avslutte prosesser med top
og htop
Disse kommandoene er nyttige for å overvåke og avslutte prosesser som bruker mye ressurser. De viser alle aktive prosesser, og du kan velge hvilken du vil avslutte.
For å bruke top
, skriv inn:
top
Resultatet fra top
er delt inn i kolonner:
- PID: Prossess-ID.
- Bruker: Eieren av prosessen.
- PR: Prosessens prioritet.
- NI: Brukeravstandsverdier for manuell kontroll av prioriteten.
- VIRT: Virtuelt minne brukt av prosessen.
- RES: Fysisk minne brukt av prosessen.
- SHR: Minne delt med andre prosesser.
- S: Prosessens nåværende tilstand (D-uavbrutt søvn, R-kjører, S-sover, T-stoppet, Z-zombie).
- %CPU: CPU bruk i prosent.
- %MEM: RAM bruk i prosent.
- TID+: Total kjøretid.
- Kommando: Kommandoen som ble brukt til å starte prosessen.
For å avslutte en prosess i top
, trykk k
, skriv inn prosess-ID, og trykk deretter ENTER
. Skriv inn termineringssignalet og trykk ENTER
igjen. Trykk q
for å avslutte top
.
htop
har et mer brukervennlig grensesnitt. Det må installeres før bruk:
sudo apt install -y htop
For å starte htop
, skriv inn:
htop
For å avslutte en prosess i htop
, naviger til prosessen, trykk F9
og deretter ENTER
. For å søke etter en prosess, trykk F3
, skriv inn navnet, og trykk ENTER
. Trykk F9
igjen for å avslutte.
Avslutte prosesser med System Monitor
Dette er en grafisk metode for de som foretrekker å unngå kommandolinjen. Åpne System Monitor fra applikasjonsmenyen. Gå til «Prosesser» fanen, søk etter prosessen (CTRL+F), klikk på den, og velg «Avslutt prosess».
En bekreftelsesmelding vil vises før prosessen avsluttes.
Ofte stilte spørsmål
Hvordan stopper jeg alle prosesser i Linux?
For å stoppe alle prosesser for en spesifikk bruker (unntatt loggskallet, init og kjerneprosesser), bruk pkill
eller killall
:
pkill -u <brukernavn>
killall -u <brukernavn>
For å drepe alle prosesser, inkludert init-systemet, trykk «ALT + Prt Sc + o».
Er det greit å avslutte en prosess?
Ja, det er vanlig å avslutte prosesser som bruker mye minne eller ikke lenger er nødvendige. Pass på å ikke avslutte viktige systemprosesser.
Hva er bakgrunnsprosesser i Linux?
Bakgrunnsprosesser kjører uten brukerinteraksjon. Disse kan overvåkes ved hjelp av top
, htop
, ps
, osv.
Hva er en zombieprosess?
En zombieprosess er en prosess som har blitt avsluttet, men fortsatt opptar minne.
Hva gjør CTRL + Z i Linux?
CTRL+Z sender SIGTSTP-signalet, som suspenderer prosessen og sender den i bakgrunnen.
Konklusjon
Å avslutte prosesser er en viktig ferdighet for alle Linux-brukere. Denne artikkelen har dekket både kommandolinjemetoder og grafiske metoder for å avslutte prosesser i Linux, inkludert bruk av kill
, pkill
, killall
, top
, htop
og System Monitor. Hvis du har spørsmål, legg dem igjen i kommentarfeltet.