Linux-operativsystemet gir flere måter å avslutte en Linux-operativsystemprosess på. Den åpenbare måten å stoppe et program på er ved å klikke på X-knappen øverst til venstre eller høyre hjørne. Men det er utallige andre måter å drepe en prosess på; vi er her for å diskutere de andre effektive måtene.
Måter å drepe en prosess i Linux
Kontrollsekvens
Den andre åpenbare måten å drepe en prosess som nettopp har blitt lansert, er å skrive Ctrl-C i kommandolinjen. Ctrl-C-kontrollsekvensen er generelt trygt å bruke, selv om noe datatap er mulig.
Ctrl-Z-sekvensen vil avbryte en prosess som kjører. Det sender SIGTSP-signalet til en prosess hvis standardhandling er å avbryte prosessen.
drep kommandoer
Linux-operativsystemet leveres med kill-kommandoen som du kan bruke til å avslutte en prosess når de ikke svarer eller bruker for mange ressurser. En prosess i Linux er en forekomst av et program.
En unik PID genereres automatisk for den prosessen når et program starter. Init-prosessen er den første prosessen som starter når et Linux-system startes opp og tildeles verdien '1'.
Init er hovedprosessen og kan ikke drepes gjennom drepekommandoen. Killkommandoen på init-prosessen er bare en forespørsel om at systemet skal legges ned.
Denne guiden tar deg gjennom trinnene og flere måter å avslutte en kjørende prosess ved hjelp av Linux-terminalen.
Rotbrukeren har alle tillatelser som kreves for å drepe alle prosesser. Du kan skaffe et root shell med kommandoen su eller legge til sudo før kommandoen og kjøre den.
Standardsignalet sendt av kill-kommandoen
Å drepe en prosess vil sende en avslutningsmelding til den angitte prosessen. De to hovedtyper av avslutningsmeldinger inkluderer:
• SIGTERM - Drepekommandoen vil sende et SIGTERM-signal som standard. Det skal tillate at prosessen avsluttes gjennom sine normale nedleggelsesprosedyrer. Det er en mildere måte å prøve å avslutte en prosess på, og kan bli blokkert.
• SIGKILL - Det vil alltid drepe en prosess brått. Hvis SIGKILL ikke fungerer, har operativsystemet mislyktes. Det er den raskeste og mest effektive metoden for å drepe en prosess.
Liste som kjører prosesser
Toppkommandoen, ps-kommandoen og pidof-kommandoen er de enkleste måtene å vise kjørende prosesser i et Linux-system.
Syntaks:
ps -e | grep prosessnavn
Skjermbildet nedenfor viser hvordan du bruker ps-kommandoen for å sjekke om MySQL kjører på systemet. Det gir oss PID for MySQL-demonen, som er1162.
Vanlige alternativer for å legge til i ps-kommandoen
• -a: se prosesser fra alle brukere.
• -u: se detaljert informasjon om hver prosess.
• -x: se alle prosesser som styres av demoner.
ps -e
Syntaks:
topp
Toppkommandoen viser deg PID, bruker, navn på ressursen og hvor mange systemressurser hver prosess bruker. Disse er nyttige hvis du bestemmer deg for å avslutte noen av prosessene.
Å bruke pgrep-kommandoen er også veldig effektiv for å skaffe den tilsvarende prosess-IDen.
Vanlige alternativer for å legge til pgrep-kommandoen.
• -l: liste opp prosessnavn og PID-er.
• -n: Returner den nyeste prosessen.
• -o: Returner den eldste prosessen.
• -u: Finn prosesser som tilhører en bestemt bruker.
• -x: Finn en prosess som samsvarer nøyaktig med et gitt mønster.
Pidof-kommandoen brukes til å finne IP-en til en prosess hvis du vet prosessnavnet.
Syntaks:
pidof
Alternativer:
• -c: Returnerer PID-er i en enkelt rotkatalog.
• -o: Det vil utelate visse PID-er.
• -s: Returner en enkelt PID.
• -x: Returnerer PID-er for skall som kjører skript.
Du kan drepe en prosess i Linux gjennom forskjellige metoder, avhengig av om du kjenner PID for prosessen, navnet på prosessen eller tidspunktet prosessen har kjørt.
killall kommando
Killall-kommandoen brukes til å drepe prosesser etter navn. Det kan drepe flere prosesser med en enkelt kommando, og det sender et SIGTERM-signal som standard.
Syntaks:
Drep alle
Alternativer tilgjengelig med killall-kommandoen:
• -e: Returner nøyaktig samsvar for prosessnavnet.
• -I: Kommandoen vil ignorere saken når du finner prosessnavnet.
• -i: Den vil be om ytterligere informasjon når du dreper en prosess ved navn.
• -u: Det vil drepe prosesser som eies av en spesifisert bruker av systemet.
• -v: Det vil gi tilbakemelding på om drapsprosessen er utført vellykket.
Killall-kommandoen kan også avslutte prosesser i et Linux-system basert på prosessenes kjøretid.
• -o: Dette alternativet vil drepe alle prosesser i mer enn spesifisert tid.
• -y: Dette alternativet vil drepe alle prosesser som kjører mindre enn den angitte tiden.
Eksempel:
• killall -o 20m: Kommandoen vil drepe alle prosesser som er eldre enn 20 minutter.
• Killall -y 20m: Kommandoen vil drepe alle prosesser som kjører i mindre enn 15 minutter.
drep kommandoen
Killkommandoen vil drepe en prosess hvis du kjenner prosessens IP.
Syntaks:
drepe
Drep-kommandoen dreper en enkelt prosess med den gitte prosess-IDen. Kommandoen vil sende et SIGTERM-signal for å stoppe og vente på at prosessen skal gjennomgå rutinemessige nedleggelsesprosedyrer.
Drep -9 kommando
Kommandoen kill -9 brukes til å avslutte prosesser eller tjenester som ikke svarer.
Syntaks:
drepe -9
eller
drep -SIGKILL
Kill -9-kommandoen vil sende et SIGKILL-signal for å slå av en prosess umiddelbart. Kill -9-kommandoen vil omgå standardavstengningsrutinen, og data som ikke er lagret vil gå tapt.
Ikke-responsive programmer ignorerer kill-kommandoen, men avsluttes når kill -9-kommandoen utstedes.
Andre ofte brukte drapsalternativer inkluderer:
• -1 (HUP): Dette er alternativet "legg på" og er generelt veldig trygt.
• -2 (SIGINT): Dette er det samme signalet som Ctrl-C og betraktes som et trygt alternativ for å drepe et program.
• -15 (-TERM): dette er standard termineringssignal og er generelt veldig trygt.
Du kan få en komplett liste over alle tilgjengelige signaler ved hjelp av kommandoen kill -l.
pkill-kommando
Pkill Command vil drepe en prosess når du vet prosessnavnet. Som standard vil pkill sende SIGTERM-signalet for å avslutte prosessen.
Syntaks:
pkill
pkill-alternativer:
• -n: Denne kommandoen vil drepe de nyeste prosessene.
• -o: Denne kommandoen vil drepe de eldste prosessene.
• -u: Denne kommandoen vil drepe prosesser basert på den valgte brukeren.
• -x: Denne kommandoen vil drepe prosesser som samsvarer med et mønster.
• -signal: Sender et spesifisert signal annet enn standardsignalet SIGTERM.
xkill
Xkill-kommandoen vil lukke en serverforbindelse til klienter.
xkill
Xkill Command vil avslutte uønskede serverprosesser.
øverste kommando
Toppkommandoen gir et grensesnitt der en bruker kan spesifisere avslutningsprosessen.
Syntaks:
topp
For å drepe en prosess med PID, setter du inn k fra grensesnittet og angir deretter en spesifisert prosess-ID.
oppsummering
• Du må ha sudo-tillatelser for å drepe en prosess gjennom kommandolinjen.
• Når du genererer et signal ved hjelp av kill-kommandoen, avbryter Linux-systemet målprosessens normale gjennomføringsflyt.
• For å finne en kjørende prosess, kan du bruke kommandoene ps, topp, pgrep eller pidof.
• Du kan drepe en prosess ved navn eller prosess-ID ved å bruke kommandoer kilall, pkill, kill, xkill eller topp.
• En drepsprosess vil sende et avslutningssignal på SIGTERM, SIGHUP ELLER SIGKILL.
• Du kan bruke System Monitor til å drepe Linux-prosessen. Det finnes i systemverktøyene, og det gir flere alternativer som toppprosessen, sluttprosessen eller drep prosessen.
• Killkommandoen og dens varianter er ganske greie å forstå og bruke.
I denne guiden fremhevet vi forskjellige måter å drepe prosesser i Linux på. Det er en liten læringskurve når det gjelder listen over signalalternativer den tilbyr, noe som er viktig for riktig Linux-administrasjon. Hvis du vil lære mer, foreslår jeg at du ser på deres respektive mansider.