Android

Hur man dödar en process i Linux

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

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

Innehållsförteckning:

Anonim

Har du någonsin mött situationen där du startade en applikation, och plötsligt när du använder applikationen blir det svarsfullt och kraschar oväntat? Du försöker starta ansökan igen, men ingenting händer eftersom den ursprungliga ansökningsprocessen aldrig stängs helt av.

Det har hänt oss alla någon gång, eller hur? Lösningen är att avsluta eller döda ansökningsprocessen. Men hur?

Lyckligtvis finns det flera verktyg i Linux som låter dig döda felaktiga processer., kommer vi att visa dig hur du använder killall , pkill och pkill kommandon för att avsluta en process i Linux.

Huvudskillnaden mellan dessa verktyg är att kill avslutar processer baserade på Process ID-nummer (PID), medan killall och pkill kommandona avslutar pkill baserat på deras namn och andra attribut.

Vanliga användare kan döda sina egna processer, men inte de som tillhör andra användare, medan rotanvändaren kan döda alla processer.

System Kill Signals

kill , killall och pkill skicka en given signal till specificerade processer eller processgrupper. När ingen signal anges skickar varje verktyg 15 ( TERM ).

De mest använda signalerna är:

  • 1 (-HUP): för att ladda om en process. 9 (-KILL): att döda en process. 15 (-TERM): att graciöst stoppa en process.

Signaler kan anges på tre olika sätt:

  • använda nummer (t.ex. -1) med prefixet "SIG" (t.ex. -SIGHUP) utan prefixet "SIG" (t.ex. -HUP).

Använd alternativet -l att lista alla tillgängliga signaler:

kill -l # or killall -l

Stegen som beskrivs nedan fungerar på alla Linux-distributioner.

Avsluta processer med kill kommandot

För att avsluta en process med kill kommandot måste du först hitta PID-processen. 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. pidof kommandot för att hitta process-ID:

pidof firefox

Kommandot kommer att skriva ut alla Firefox-processer:

2551 2514 1963 1856 1771

När du väl vet att Firefox behandlar PID: er för att avsluta alla av dem skickar TERM signalen:

kill -9 2551 2514 1963 1856 1771

Avsluta processer med hjälp av killall kommandot

killall kommandot avslutar alla program som matchar ett specifikt namn.

Med samma scenario som tidigare kan du döda Firefox-processen genom att skriva:

killall -9 firefox

killall accepterar flera alternativ såsom att skicka signaler till processer som ägs av en given användare, matcha processnamn mot vanliga uttryck och skapelsestid. Du kan få en lista med alla alternativ genom att skriva killall (utan några argument) på din terminal.

Till exempel, för att avsluta alla processer som körs som en användares "sara", skulle du köra följande kommando:

sudo killall -u sara

Avsluta processer med pkill kommandot

pkill avslutar processer som matchar mönstret som anges på kommandoraden:

pkill -9 firefox

Processens namn behöver inte vara en exakt matchning.

Med pkill du också skicka en signal till processer som ägs av en given användare. För att döda bara firefox-processerna som ägs av användaren "sara", skriver du:

pkill -9 -u sara firefox

Slutsats

Att killall pkill svarar med hjälp av kommandona kill , killall och pkill är en enkel uppgift. Du behöver bara veta processnamnet eller PID.

döda terminal