Android

Döda kommandot i Linux

Linux Command Line Tutorial For Beginners 15 - kill command

Linux Command Line Tutorial For Beginners 15 - kill command

Innehållsförteckning:

Anonim

Linux är ett fantastiskt och avancerat operativsystem, men det är inte perfekt. En gång i taget kan vissa applikationer börja bete sig felaktigt och bli svarsfria eller börja konsumera mycket systemresurser. Svarande applikationer kan inte startas om eftersom den ursprungliga ansökningsprocessen aldrig stängs av helt. Den enda lösningen är att antingen starta om systemet eller döda ansökningsprocessen.

Det finns flera verktyg som tillåter dig att avbryta felaktiga processer med att kill det som är det mest använda.

kill kommandot

kill är ett skal som är inbyggt i de flesta Bourne-härledda skal som Bash och Zsh. Kommandobeteendet är något annorlunda mellan skalen och den fristående /bin/kill körbara.

Använd typkommandot för att visa alla platser på ditt system som innehåller kill :

type -a kill

kill is a shell builtin kill is /bin/kill

Utgången ovan berättar att shell-inbyggnaden har prioritet framför den fristående körbara, och den används när du skriver kill . Om du vill använda det binära skriver du hela sökvägen till filen /bin/kill ., vi kommer att använda Bash-inbyggnaden.

Syntaxen för kill kommandot har följande form:

kill…

kill kommandot skickar en signal till specificerade processer eller processgrupper, vilket får dem att agera enligt signalen. När signalen inte specificeras är standardvärdet -15 (-TERM).

De mest använda signalerna är:

  • 1 ( HUP ) - Ladda om en process. 9 ( KILL ) - Döda en process. 15 ( TERM ) - Stoppa en process på ett trevligt sätt.

För att få en lista över alla tillgängliga signaler, anropa kommandot med alternativet -l :

kill -l

Signaler kan anges på tre olika sätt:

  1. Använda nummer (t.ex. -1 eller -s 1 ). Använd "SIG" -prefixet (t.ex. -SIGHUP eller -s SIGHUP ). Utan "SIG" -prefixet (t.ex. -HUP eller -s HUP ).

Följande kommandon motsvarar varandra:

kill -1 PID_NUMBER kill -SIGHUP PID_NUMBER kill -HUP PID_NUMBER

PID: erna som tillhandahålls till kill kommandot kan vara ett av följande:

  • Om PID är större än noll skickas signalen till processen med ID lika med PID Om PID är lika med noll skickas signalen till alla processer i den aktuella processgruppen. Med andra ord skickas signalen till alla processer som tillhör GID för skalet som åberopade kill kommandot. Använd ps -efj kommandot för att visa processgrupps-ID: er. Om PID är lika med -1 skickas signalen till alla processer med samma UID som användaren åberopar kommandot. Om den åkallande användaren är rot, skickas signalen till alla processer utom init och själva dödsprocessen. Om PID är mindre än -1 , skickas signalen till alla processer i processgruppen eQ med GID lika med det absoluta värdet för PID .

Vanliga användare kan skicka signaler till sina egna processer, men inte de som tillhör andra användare, medan rotanvändaren kan skicka signaler till andra användares processer.

Avsluta processer med kill kommandot

För att avsluta eller döda en process med kill kommandot måste du först hitta process-ID-nummer (PID). Du kan göra detta med olika kommandon som top , ps , pidof och pgrep .

Låt oss säga att Firefox-webbläsaren har svarat, och du måste döda Firefox-processen. För att hitta PID: er i webbläsaren använder du pidof kommandot:

pidof firefox

Kommandot kommer att skriva ut ID: erna för alla Firefox-processer:

6263 6199 6142 6076

När du har känt till processnumren kan du avsluta dem alla genom att skicka TERM signalen:

kill -9 2551 2514 1963 1856 1771

Istället för att söka efter PID och sedan avsluta processerna kan du kombinera kommandona ovan till ett:

kill -9 $(pidof firefox)

Ladda om processer med kill kommandot

Ett annat fall för vanlig användning för att kill är att skicka HUP signalen, som berättar för processerna att ladda om dess inställningar.

För att till exempel ladda Nginx måste du skicka en signal till masterprocessen. Process-ID för Nginx-huvudprocessen kan hittas i filen nginx.pid , som vanligtvis finns i nginx.pid /var/run .

Använd cat att hitta master-PID:

cat /var/run/nginx.pid

30251

När du hittat master-PID ladda Nginx-inställningarna igen genom att skriva:

sudo kill -1 30251

Kommandot ovan måste köras som root eller användare med sudo-privilegier.

Slutsats

kill kommandot används för att skicka en signal till processer. Den mest använda signalen är SIGKILL eller -9 , som avslutar de givna processerna.

döda terminal