27Aug

Hur man dödar en skrivbordsapplikation eller bakgrundsprocess på Linux

Windows har Ctrl + Alt + Delete och Macs har Command + Option + Escape för att tvinga frusna applikationer att stänga. Linux har sina egna sätt att "döda" de felaktiga processerna, oavsett om de är grafiska fönster eller bakgrundsprocesser.

Det exakta grafiska verktyget du kan använda beror på skrivbordsmiljön, eftersom varje skrivbordsmiljö ger olika verktyg till bordet. Men de flesta är ganska lika.

Från ett grafiskt skrivbord

Moderna Linux-skrivbord hanterar detta ganska bra, och det kan vara överraskande automatiskt. Om en applikation inte svarar, kommer ett skrivbord med en kompositiong-chef ofta att gråta hela fönstret för att visa att det inte svarar.

Klicka på X-knappen på fönstrets titelfält och fönsterhanteraren informerar dig ofta om att fönstret inte svarar. Du kan antingen ge det lite tid att svara eller klicka på ett alternativ som "Force Quit" för att förhindra stänga applikationen.

I Linux är fönsterhanteraren som målar titelfälten separat från själva applikationen, så det svarar vanligtvis även om fönstret inte kommer att göra det. Vissa fönster målar dock sina egna gränssnitt, men det kan därför inte alltid fungera.

Programmet "xkill" kan hjälpa dig att snabbt döda ett grafiskt fönster på skrivbordet.

Beroende på skrivbordsmiljön och dess konfiguration kan du aktivera den här genvägen genom att trycka på Ctrl + Alt + Esc. Du kan också bara köra kommandot xkill - du kan öppna ett terminalfönster, skriv xkill utan citat och tryck på Enter. Eller du kan trycka på en genväg som Alt + F2, som öppnar dialogrutan "Run Command" på Ubuntus Unity-skrivbord och många andra. Skriv xkill i dialogrutan och tryck på Enter.

Din markör ändras till en X. Klicka på ett fönster och xkill-verktyget bestämmer vilken process som är associerad med det här fönstret och dö sedan omedelbart den processen. Fönstret kommer omedelbart att försvinna och stänga.

Ditt Linux-skrivbord har förmodligen ett verktyg som fungerar på samma sätt som arbetshanteraren på Windows. På Ubuntus Unity-skrivbord, GNOME och andra GNOME-baserade skrivbord är detta System Monitor-verktyget.Öppna verktyget Systemövervakning för att se en lista över löpande proesser - inklusive bakgrunden. Du kan också tvinga processer härifrån härifrån om de misshandlar.

Från terminalen

Låt oss säga att du vill göra allt detta från terminalen istället. Vi täckte många av de verktyg du kan använda för detta när vi tittade på kommandon för hantering av processer på Linux.

Låt oss säga att Firefox körs i bakgrunden och vi vill döda det från terminalen. Standard kill-kommandot tar ett process ID-nummer, så du måste hitta den först.

Till exempel kan du köra ett kommando som:

ps aux |grep firefox

Vilket skulle lista alla processer och rör som listas till grep-kommandot, vilket kommer att filtrera det och skriva ut endast linjer som innehåller Firefox.(Den andra raden som du ser är grep-processen själv.) Du kan också få process-ID från det översta kommandot och många andra platser.

Ta process ID-numret från Firefox-processen - precis till höger om användarnamnet - och ge det till kill-kommandot. Det vill säga, kör kommandot som så:

dödar ####

Om processen körs som en annan användare måste du bli rotbrukeren först - eller åtminstone kör kommandot Döda med sudo-kommandot, som så:

sudo kill ####

Det är en grundläggande metod, men det är inte riktigt snabbast. Pgrep- och pkill-kommandona hjälper till att effektivisera detta. Till exempel kör "pgrep firefox" för att se process-ID för den pågående Firefox-processen. Du kan sedan mata det numret till döds-kommandot.

Eller, hoppa över allt och kör "pkill firefox" för att döda Firefox-processen utan att veta sitt nummer.pkill utför vissa grundläggande mönster-matchning - det kommer att försöka hitta processer med namn som innehåller Firefox.

Killall-kommandot är som pkill, men lite mer exakt. Det kommer att döda alla pågående processer med ett visst namn. Så kör "killall firefox" kommer att döda alla pågående processer som heter "firefox", men inte några processer som bara har Firefox i deras namn.

Dessa är långt ifrån de enda kommandon som ingår i Linux för hantering av processer. Om du använder någon typ av serveradministrationsprogram kan det också ha användbara sätt att döda och starta om processer.

Systemtjänster fungerar annorlunda än processer - du måste använda specifika kommandon för att ta ner, starta om eller ta upp tjänster. Dessa specifika kommandon kan skilja sig från olika Linux-distributioner.

Bildkrediter: Lee på Flickr