För det mesta vill du att ett program ska sluta med egen hjälp, eller, om det är en grafisk applikation, genom att använda lämpligt menyalternativ eller genom att använda korset i hörnet.
Varje så ofta kommer ett program att hänga, i vilket fall behöver du en metod för att döda den. Du kanske också vill döda ett program som körs i bakgrunden som du inte längre behöver köra.
Den här guiden ger en metod för att döda alla versioner av samma program som körs på ditt system.
Hur man använder killallkommandot
Killall-kommandot dödar alla processer med namn. Det betyder att om du har tre versioner av samma program som körs kommer killallkommandot att döda alla tre.
Öppna till exempel ett litet program för en sådan bildvisare. Öppna nu en annan kopia av samma bildvisare. För mitt exempel har jag valt Xviewer som är en klon av Eye Of Gnome.
Öppna nu en terminal och skriv in följande kommando:
döda alla
Till exempel för att döda alla instanser av Xviewer skriver du följande:
killall xviewer
Båda fallen av det program du valt att döda kommer nu att stängas.
Döda den exakta processen
killall kan producera konstiga resultat. Jo här är en anledning till varför. Om du har ett kommandonamn som är mer än 15 tecken långt kommer kommandot killall bara att fungera på de första 15 tecknen. Om du därför har två program som delar samma första 15 tecken kommer båda programmen att avbrytas, även om du bara ville döda en.
För att komma runt detta kan du ange följande omkopplare som endast kommer att döda filer som matchar det exakta namnet.
killall -e
Ignorera fallet när man dödar program
För att försäkra att killall-kommandot ignorerar fallet med det programnamn du anger använder du följande kommando:
killall -I
killall -ignore-case
Döda alla program i samma grupp
När du kör ett kommando som följande kommer det att skapa två processer:
ps -ef | mindre
Ett kommando är för ps -ef-delen som listar alla körprocesser på ditt system och utgången pipes till mindre kommando.
Båda programmen hör till samma grupp som är bash.
För att döda båda programmen samtidigt kan du köra följande kommando:
killall -g
Till exempel för att döda alla kommandon som körs i ett bash skal du köra följande:
killall-g bash
För övrigt att lista alla löpande grupper kör följande kommando:
ps-g
Få bekräftelse innan du tar bort program
Det är uppenbart att killall-kommandot är ett ganska kraftfullt kommando och du vill inte av misstag döda felaktiga processer.
Med hjälp av följande omkopplare kommer du att bli ombedd om du är säker innan varje process dödas.
killall -i
Döda processer som har löpt ut i viss tid
Tänk dig att du har kört ett program och det tar mycket längre tid än du hoppades det skulle.
Du kan döda kommandot på följande sätt:
killall -o h4
H i ovanstående kommando står i timmar.
Du kan också ange något av följande:
- s - sekunder
- m - minuter
- h - timmar
- d-dagar
- w - veckor
- M - månader
- y - år
Alternativt, om du vill döda kommandon som bara har börjat springa kan du använda följande switch:
killall -y h4
Den här gången kommer killallkommandot att döda alla program som körs i mindre än 4 timmar.
Berätta inte mig när en process inte dödas
Som standard om du försöker döda ett program som inte körs får du följande fel:
programnamn: ingen process hittades
Om du inte vill få veta om processen inte hittades använd följande kommando:
killall -q
Använda vanliga uttryck
Istället för att ange namnet på ett program eller kommando kan du ange ett reguljärt uttryck så att alla processer som matchar det reguljära uttrycket stängs av killall-kommandot.
För att använda ett vanligt uttryck använd följande kommando:
killall -r
Döda program för att ange användare
Om du vill döda ett program som drivs av en viss användare kan du ange följande kommando:
killall -u
Om du vill döda alla processer för en viss användare kan du släppa bort programnamnet.
Vänta för killall att slutföra
Som standard kommer killall tillbaka direkt till terminalen när du kör det men du kan tvinga killall att vänta tills alla angivna processer har stängts innan du återvänder till terminalfönstret.
För att göra detta kör följande kommando:
killall -w
Om programmet aldrig dör kommer killall också fortsätta att leva vidare.
Signaler Signaler Signaler
Som standard skickar killall-kommandot SIGTERM-signalen till program för att få dem att stänga och det här är den renaste metoden för att döda program.
Det finns dock andra signaler du kan skicka med kommandot killall och du kan lista dem med följande kommando:
killall -l
Listan som returneras kommer att vara något så här:
- HUP
- INT
- SLUTA MED
- SJUK
- FÄLLA
- ABRT
- IOT
- BUSS
- FPE
- DÖDA
- USR1
- SEGV
- USR2
- RÖR
- ALRM
- TERMIN
- STKFLT
- CHLD
- CONT
- SLUTA
- TSTP
- ställn in
- TTOU
- URG
- XCPU
- XFSZ
- VTALRM
- PROGRAM
- Wynch
- IO
- PWR
- SYS
- OANVÄND
Den listan är extremt lång. För att läsa om vad dessa signaler betyder, kör följande kommando:
man 7-signal
Generellt bör du använda standard SIGTERM-alternativet, men om programmet vägrar att dö kan du använda SIGKILL som tvingar programmet att stänga, om än på ett obetalt sätt.
Andra sätt att döda ett program
Det finns 5 andra sätt att döda en Linux-applikation som framgår av den länkade guiden.
Men för att spara dig ansträngningarna att klicka på länken här är ett avsnitt som visar vad de här kommandona är varför du kanske använder de här kommandona över killall.
Den första är kill-kommandot. Killall-kommandot som du har sett är bra att döda alla versioner av samma program. Döda kommandot är utformat för att döda en process i taget och är därför mer målgrupperad.
För att köra kommandot Kill måste du veta processprocessen för processen du vill döda. För detta kan du använda kommandot ps.
Till exempel för att hitta en springande version av Firefox kan du köra följande kommando:
ps -ef | grep firefox
Du kommer att se en rad data med kommandot / usr / lib / firefox / firefox i slutet. I början av raden ser du ditt användar-ID och numret efter att användar-ID är process-id.
Med hjälp av process ID kan du döda Firefox genom att köra följande kommando:
döda -9
Ett annat sätt att döda ett program är att använda kommandot xkill. Detta brukar användas för att döda felaktiga grafiska applikationer.
Att döda ett program som Firefox öppnar en terminal och kör följande kommando:
xkill
Markören kommer nu att byta till ett stort vitt kors. Håll markören över fönstret du vill döda och klicka med vänster musknapp. Programmet avslutas omedelbart.
Ett annat sätt att döda en process är att använda Linux-kommandot. Det översta kommandot listar alla körprocesser på ditt system.
Allt du behöver göra för att döda en process är att trycka på "k" -tangenten och ange process-ID för det program du vill döda.
Tidigare i det här avsnittet dödade kommandot och det krävde att du hitta processen genom att använda ps-kommandot och döda sedan processen med kommandot Döda. Detta är inte det enklaste alternativet på något sätt.
För en sak returnerar PS-kommandot massor av information som du inte behöver. Allt du ville ha var process ID. Du kan få processen ID mer enkelt genom att köra följande kommando:
pgrep firefox
Resultatet av ovanstående kommando är helt enkelt process-ID för Firefox. Du kan nu köra kommandot döda på följande sätt:
döda
(Byta ut Det är dock enklare att helt enkelt tillhandahålla programnamnet till pkill enligt följande: Slutligen kan du använda ett grafiskt verktyg som det som medföljer Ubuntu som heter "System Monitor". För att köra "System Monitor" trycker du på supernyckeln (Windows-tangent på de flesta datorer) och skriver "sysmon" i sökfältet. När systemmonitorn visas, klickar du på den. Systemskärmen visar en lista över processer. För att avsluta ett program på ett rent sätt markerar du det och trycker på slutknappen längst ner på skärmen (eller trycker på CTRL och E). Om detta inte fungerar, högerklickar du och väljer "Döda" eller tryck CTRL och K på processen du vill döda.pkill firefox