Interessert i å lære mer Om Linux administrasjon? Utforsk Disse Linux-kursene.Introduksjon Til Linux (LFS101x) – Gratis
Lær hvordan du dreper villfaren prosesser i denne opplæringen fra våre arkiver.
Bilde dette: Du har lansert et program (det være seg fra din favoritt desktop menyen eller fra kommandolinjen) og du begynner å bruke den lanserte app, bare for å ha det låse opp på deg, slutte å utføre, eller uventet dø. Du prøver å kjøre appen igjen,men det viser seg at originalen aldri helt slår seg helt av.
Hva gjør du ? Du dreper prosessen. Men hvordan? Tro det eller ei, din beste innsats ligger oftest innenfor kommandolinjen. Heldigvis Har Linux alt verktøy som er nødvendig for å styrke deg, brukeren, for å drepe en feilprosess. Men før du umiddelbart starter den kommandoen for å drepe prosessen, må du først vite hva prosessen er. Hvordan tar du vare på denne lagdelte oppgaven? Det er faktisk ganske enkelt … når du vet verktøyene til din disposisjon.
la meg introdusere deg til nevnte verktøy.trinnene jeg skal skissere vil fungere på nesten Alle Linux-distribusjoner, enten det er et skrivebord eller en server. Jeg skal håndtere strengt med kommandolinjen, så åpne opp terminalen og forberede seg til å skrive.
Finne prosessen
det første trinnet i å drepe den ikke-responsive prosessen er å finne den. Det er to kommandoer jeg bruker til å finne en prosess: top og ps. Top er et verktøy hver administrator bør bli kjent. Med top får du en fullstendig liste over kjørende prosess. Fra kommandolinjen, utsted toppen for å se en liste over kjørende prosesser (Figur 1).
fra denne listen vil du se noen ganske viktig informasjon. Si, For Eksempel, Chrome har blitt ikke svarer. Ifølge vår toppdisplay kan vi skille det er fire forekomster av chrome som kjører Med Prosess-Id-Er (Pid) 3827, 3919, 10764 og 11679. Denne informasjonen vil være viktig å ha med en bestemt metode for å drepe prosessen.
selv om top er utrolig praktisk, er det ikke alltid den mest effektive måten å få den informasjonen du trenger. La oss si at Du vet At Chrome-prosessen er det du trenger å drepe, og du vil ikke måtte se gjennom sanntidsinformasjonen som tilbys av top. For det kan du gjøre bruk av ps-kommandoen og filtrere utgangen gjennom grep. Ps-kommandoen rapporterer et øyeblikksbilde av en gjeldende prosess, og grep skriver ut linjer som samsvarer med et mønster. Grunnen til at vi filtrerer ps gjennom grep er enkel: Hvis du utsteder ps-kommandoen selv, får du en stillbildeoppføring av alle nåværende prosesser. Vi vil bare ha oppføringen knyttet Til Chrome. Så denne kommandoen vil se slik ut:
ps aux | grep chrome
aux-alternativene er som følger:
-
a = vis prosesser for alle brukere
-
u = vis prosessens bruker/eier
-
x = vis også prosesser som ikke er koblet til en terminal
x-alternativet er viktig når du leter etter informasjon om et grafisk program.
når du utsteder kommandoen ovenfor, får du mer informasjon enn Du trenger (Figur 2) for å drepe en prosess, men det er noen ganger mer effektivt enn å bruke top.
Drepe prosessen
nå kommer vi til oppgaven med å drepe prosessen. Vi har to biter av informasjon som vil hjelpe oss å drepe villfaren prosessen:
-
prosessnavn
-
Prosess-ID
som du bruker, bestemmer kommandoen som brukes til avslutning. Det er to kommandoer som brukes til å drepe en prosess:
-
kill – Kill en prosess MED ID
-
killall-Kill en prosess med navn
Det er også forskjellige signaler som kan sendes til begge kill-kommandoene. Hvilket signal du sender vil bli bestemt av hvilke resultater du vil ha fra kill-kommandoen. For eksempel kan DU sende hup (hang up) signalet til kill-kommandoen, som effektivt vil starte prosessen på nytt. Dette er alltid et klokt valg når du trenger prosessen for å starte på nytt umiddelbart(for eksempel ved en demon). Du kan få en liste over alle signaler som kan sendes til kill-kommandoen ved å utstede kill-l. du finner ganske mange signaler(Figur 3).
de vanligste drepesignalene er:
Signal Name |
Single Value |
Effect |
SIGHUP |
Hangup |
|
SIGINT |
Interrupt from keyboard |
|
SIGKILL |
Kill signal |
|
SIGTERM |
Termination signal |
|
SIGSTOP |
17, 19, 23 |
Stop the process |
det som er fint med dette er at Du kan bruke Signalverdien i Stedet For Signalnavnet. Så du trenger ikke å huske alle navnene på de ulike signalene. Så, la oss nå bruke kill-kommandoen for å drepe vår forekomst av chrome. Strukturen for denne kommandoen vil være:
kill SIGNAL PID
HVOR SIGNAL er signalet som skal sendes og PID Er PROSESS-ID som skal drepes. Vi vet allerede, fra vår ps-kommando At Idene vi vil drepe er 3827, 3919, 10764 og 11679. Så for å sende drepesignalet, vil vi utstede kommandoene:
kill -9 3827kill -9 3919kill -9 10764kill -9 11679
når vi har utstedt kommandoene ovenfor, vil alle chrome-prosessene ha blitt drept.
La oss ta den enkle ruten! Hvis vi allerede vet at prosessen vi vil drepe heter chrome, kan vi bruke killall-kommandoen og sende det samme signalet prosessen slik: killall -9 chrome
den eneste advarselen til kommandoen ovenfor er at den ikke kan fange alle de løpende chrome-prosessene. Hvis du, etter å ha kjørt kommandoen ovenfor, utsteder ps aux / grep chrome-kommandoen og ser gjenværende prosesser som kjører, er det best å gå tilbake til kill-kommandoen og sende signal 9 for å avslutte prosessen MED PID.
Ending processes made easy
som du kan se, er det ikke så utfordrende å drepe feilaktige prosesser som du kanskje har trodd. Når jeg kommer opp med en stædig prosess, pleier jeg å starte med killall-kommandoen, da den er den mest effektive ruten til oppsigelse. Men når du kommer opp med en veldig feisty prosess, er kill-kommandoen veien å gå.
Lær Mer Om Linux gjennom gratis» Introduksjon Til Linux » kurs Fra Linux Foundation og edX.