Hvordan drepe Linux-prosessen ved å bruke Kill, Pkill og Killall


I Linux refererer å drepe en prosess til å avslutte eller stoppe kjøringen av et kjørende program. Hver kjørende prosess tildeles et unikt identifikasjonsnummer kjent som Prosess-ID (PID), som hjelper systemet med å holde styr på aktive prosesser.

I denne artikkelen vil vi finne ut om Linux-kill-prosessen og hvordan du finner og avslutter en prosess ved å bruke forskjellige verktøy og kommandoer i Linux.

Hva er Linux-prosessen

Enkelt sagt er en prosess som et program som for øyeblikket kjører på et system, og hver prosess har sitt eget spesielle ID-nummer (PID). Noen ganger kan imidlertid et kjørende program, eller en prosess, oppføre seg feil eller slutte å svare eller bruke opp for mye av systemressursene.

Når det skjer, må vi stoppe eller «drepe» prosessen, og det er her kill-kommandoen kommer godt med.

Hva er Kill Command

«kill»-kommandoen er et viktig verktøy som lar brukere sende signaler (stoppe eller avslutte) til prosesser som kjører for øyeblikket, og instruere dem om å avslutte eller tvangsavslutte.

Kill-kommandoen er nyttig når du trenger å administrere og kontrollere aktivitetene til forskjellige programmer på Linux-systemet ditt, for eksempel:

  • For å stoppe enhver automatisert prosess.
  • Å stoppe en prosess som er startet ved et uhell.
  • Å stoppe en prosess som bruker for mye minne.
  • For å tvangsavbryte enhver kjørende prosess i Linux.
  • For å stoppe en prosess som kjører i bakgrunnen.

Ved å bruke kill-kommandoen fra /usr/bin får du noen ekstra funksjoner for å drepe en prosess etter prosessnavn ved å bruke pkill, som identifiserer prosesser ved å navnene deres.

Hvordan finne prosess-ID eller prosessnavn

Før du avslutter en kjørende prosess, er det viktig å identifisere dens prosess-ID (PID) eller navn ved å bruke følgende ps-kommando som viser informasjon om alle kjørende prosesser på systemet med deres PID (prosess-ID) og annen informasjon.

ps -ef

Hvis du vil finne et spesifikt prosessnavn PID, kan du bruke en grep-kommando som viser alle prosesser som kjører på systemet og filtrerer resultatene slik at de bare viser de som inneholder begrepet «mariadb<“.

ps -ef | grep mariadb

Alternativt kan du finne PID-en til en prosess direkte etter navn ved å bruke pgrep-kommandoen som vist.

pgrep mariadb

Hvordan drepe en prosess i Linux

Før du dreper, stopper eller avslutter en prosess, tenk på tillatelser. Hvis du er en root-bruker, kan du stoppe enhver prosess, men hvis du er en vanlig bruker, må du legge til en «sudo» før kommandoen eller bytte til en rot med « su» for å bruke avslutningskommandoen.

Den vanlige syntaksen for kill-kommandoen er:

kill [signal or option] PID(s)
OR
sudo kill [signal or option] PID(s)

For en kill-kommando kan et Signalnavn være:

Tydelig fra oppførselen ovenfor:

  • SIGTERM er standard og sikreste måte å drepe en prosess på.
  • SIGHUP er en mindre sikker måte å drepe en prosess på enn SIGTERM.
  • SIGKILL er den mest usikre måten blant de tre ovennevnte, å drepe en prosess som avslutter en prosess uten å lagre.

I Linux er det forskjellige signaler du kan bruke for å stoppe, avslutte eller pause prosesser. Du kan liste opp alle tilgjengelige drepesignaler med navn og tilsvarende numre ved å bruke følgende kommando, som vises

kill -l

Selv om det er flere tilgjengelige signaler, men i de fleste tilfeller bruker vi bare SIGKILL (9) og SIGTERM (15).

For å drepe en prosess, må vi kjenne prosess-IDen til en prosess. En prosess er en forekomst av et program. Hver gang et program starter, genereres det automatisk en unik PID for den prosessen.

Hver prosess i Linux har en pid. Den første prosessen som starter når Linux-systemet startes opp er – init-prosessen, derfor tildeles den verdien «1» i de fleste tilfeller.

Init er hovedprosessen og kan ikke drepes på denne måten, noe som sikrer at masterprosessen ikke blir drept ved et uhell. Init bestemmer og lar seg drepe, der kill bare er en forespørsel om nedleggelse.

Før vi går videre og utfører en kill-kommando, er det noen viktige punkter å merke seg:

  • En bruker kan drepe alle sine prosesser.
  • En bruker kan ikke drepe en annen brukers prosess.
  • En bruker kan ikke drepe prosesser systemet bruker.
  • En root-bruker kan drepe prosessen på systemnivå og prosessen til enhver bruker.

For å drepe mariadb-prosessen PID, bruk kill-kommandoen som vist.

kill -9 3383

Kommandoen ovenfor vil drepe prosessen som har pid=3383, der PID er en numerisk verdi av prosessen.

En annen måte å utføre samme funksjon kan skrives om som.

kill -SIGTERM 3383

På samme måte ligner 'kill -9 PID' på 'kill -SIGKILL PID' og vice versa.

For å bekrefte at prosessen er avsluttet, kan du igjen bruke ps-kommandoen.

ps -ef | grep mariadb

Hvordan drepe flere prosesser i Linux

For å avslutte flere prosesser i Linux ved å bruke deres prosess-ID-er (PID-er), kan du bruke kill-kommandoen i kombinasjon med de relevante PID-numrene.

Identifiser først PID-ene til prosessene du vil avslutte ved å bruke kommandoen ps eller pgrep.

ps aux | grep apache2
OR
pgrep apache2

Når du har PID-ene, bruk kill-kommandoen for å avslutte dem.

kill -9 PID1 PID2 PID3

Hvordan drepe en prosess i Linux ved å bruke prosessnavn

For å avslutte en prosess med prosessnavnet, bruker vi kommandoen pkill, som er en versjon av kommandoen kill som lar deg nevne prosessnavnet eller et mønster for å finne en prosess.

Du må være klar over prosessnavnet før du dreper, og hvis du skriver inn feil prosessnavn, kan det skjemme deg.

pkill mysqld

Hva om en prosess har for mange forekomster og flere underordnede prosesser, har vi en kommando «killall» som tar prosessnavnet som et argument i stedet for prosessnummeret.

Hvordan drepe en prosess i Linux ved å bruke Killall-kommandoen

Hovedforskjellen mellom killall og kill er at killall kan avslutte en prosess med navnet sitt, mens kill-kommandoen er avhengig av prosess-ID (pid).

For å drepe alle mysql-forekomster sammen med underordnede prosesser, bruk kommandoen som følger.

killall mysqld
OR
pkill mysqld

Du kan alltid bekrefte statusen til prosessen om den kjører eller ikke, ved å bruke en av kommandoene nedenfor.

systemctl status mysql
pgrep mysql
ps -aux | grep mysql

Grafiske Linux-systemer overvåker verktøy som htop eller gnome-system-monitor gir et brukervennlig grensesnitt for å finne og drepe prosesser.

Konklusjon

Det er det foreløpig fra meg. Jeg kommer snart tilbake med et annet interessant og informativt emne. Inntil da, hold deg oppdatert og koblet til Tecmint, og ta vare på helsen din. Ikke glem å dele din verdifulle tilbakemelding i kommentarfeltet.