Android

Hvordan drepe en prosess i Linux

LPIC 103.5 Работа с процессами в Linux

LPIC 103.5 Работа с процессами в Linux

Innholdsfortegnelse:

Anonim

Har du noen gang møtt situasjonen der du lanserte en applikasjon, og plutselig mens du bruker applikasjonen, blir den svarer og krasjer uventet? Du prøver å starte søknaden på nytt, men ingenting skjer fordi den opprinnelige søknadsprosessen aldri virkelig slås helt av.

Det har skjedd med oss ​​alle på et tidspunkt, ikke sant? Løsningen er å avslutte eller drepe søknadsprosessen. Men hvordan?

Heldigvis er det flere verktøy i Linux som lar deg drepe feilaktige prosesser., vil vi vise deg hvordan du bruker kill , killall og pkill kommandoer for å avslutte en prosess i Linux.

Hovedforskjellen mellom disse verktøyene er at kill avslutter prosesser basert på Process ID-nummer (PID), mens killall og pkill kommandoene avslutter kjørende prosesser basert på navn og andre attributter.

Vanlige brukere kan drepe sine egne prosesser, men ikke de som tilhører andre brukere, mens rotbrukeren kan drepe alle prosesser.

System Kill Signals

kill , killall og pkill sende et gitt signal til spesifiserte prosesser eller prosessgrupper. Når det ikke er spesifisert noe signal, sender hvert verktøy 15 ( TERM ).

De mest brukte signalene er:

  • 1 (-HUP): for å laste inn en prosess på nytt. 9 (-KILL): å drepe en prosess. 15 (-TERM): for å grasiøst stoppe en prosess.

Signaler kan spesifiseres på tre forskjellige måter:

  • bruker nummer (f.eks. -1) med prefikset “SIG” (f.eks. -SIGHUP) uten “SIG” -prefikset (f.eks. -HUP).

Bruk alternativet -l for å liste alle tilgjengelige signaler:

kill -l # or killall -l

Trinnene som er beskrevet nedenfor, fungerer på alle Linux-distribusjoner.

Avslutte prosesser ved hjelp av kill Command

For å avslutte en prosess med kill kommandoen, må du først finne PID-prosessen. Du kan gjøre dette ved å bruke forskjellige kommandoer som top , ps , pidof og pgrep .

La oss si at Firefox-nettleseren har svart, og du må drepe Firefox-prosessen. For å finne prosess-ID bruker du pidof kommandoen:

pidof firefox

Kommandoen vil skrive ut alle Firefox-prosesser:

2551 2514 1963 1856 1771

Når du vet at Firefox behandler PID-er for å avslutte alle av dem, send TERM signalet:

kill -9 2551 2514 1963 1856 1771

Avslutte prosesser ved hjelp av killall kommandoen

killall kommandoen avslutter alle programmer som samsvarer med et spesifisert navn.

Ved å bruke det samme scenariet som før, kan du drepe Firefox-prosessen ved å skrive:

killall -9 firefox

killall aksepterer flere alternativer som å sende signaler til prosesser som eies av en gitt bruker, samsvare med prosessnavn mot vanlige uttrykk og opprettelsestid. Du kan få en liste over alle alternativene ved å skrive killall (uten noen argumenter) på terminalen.

For å avslutte alle prosesser som kjører som en bruker “sara”, kjører du følgende kommando:

sudo killall -u sara

Avslutte prosesser ved å bruke pkill kommandoen

pkill avslutter prosesser som samsvarer med mønsteret gitt på kommandolinjen:

pkill -9 firefox

Navnet på prosessen trenger ikke være nøyaktig samsvar.

Med pkill kan du også sende et signal til prosesser som eies av en gitt bruker. For å drepe bare firefox-prosessene som eies av brukeren "sara", skriver du inn:

pkill -9 -u sara firefox

Konklusjon

Det er en enkel oppgave å avslutte ikke-svarende programmer ved å bruke killall , killall og pkill kommandoene. Du trenger bare å vite prosessnavnet eller PID.

drepe terminal