Sådan dræbes Linux-processer/ikke-reagerende applikationer ved hjælp af xkill Command


Hvordan dræber vi en ressource/proces i Linux? Vi finder selvfølgelig ressourcens PID og videresender derefter PID til kill-kommandoen.

Når vi taler mere præcist, kan vi finde PID for en ressource (siger terminal) som:

$ ps -A | grep -i terminal

6228 ?        00:00:00 gnome-terminal

I ovenstående output er tallet '6228' PID for processen (gnome-terminal), brug kill-kommandoen til at dræbe processen som vist nedenfor.

$ kill 6228

Drabkommandoen sender et signal til en proces, hvis PID sendes sammen med kommandoen.

Alternativt kan vi bruge pkill-kommandoen, som dræber en proces baseret på navn og andre attributter for en proces. For at dræbe en proces, hvis navn er terminal, skal vi udføre:

$ pkill terminal

Bemærk: Længden af procesnavnet i pkill er begrænset til 15 tegn.

pkill virker mere praktisk, da du kan dræbe en proces uden at skulle finde ud af dens PID. Men hvis du vil have en bedre kontrol på dit system, slår intet kommandoen 'kill'. Ved at bruge kill får du bedre indsigt i, hvilken proces du dræber.

Vi har allerede dækket en detaljeret guide til kill, pkill og killall-kommandoer.

For dem, der kører X-server, er der et andet værktøj kaldet xkill, der kan dræbe en proces fra dens X-vindue uden at videregive procesnavn eller dens PID.

xkill-værktøjet tvinger X-serveren til at lukke kommunikation til sin klient, hvilket resulterer i drab på klienten af sin X-ressource. xkill, som er en del af X11-værktøjer, er meget praktisk til at dræbe unødvendige vinduer.

Det understøtter valgmuligheder som at oprette forbindelse til specifik X Server (-displaynavn) ved hjælp af displaynummer, når flere X-servere kører på en vært samtidigt og dræber al klienten (-all, anbefales ikke) med vinduer på øverste niveau på skærmen samt tage frame (-frame) i betragtning.

For at få en liste over alle de klienter, du kan køre:

$ xlsclients
'  ' /usr/lib/libreoffice/program/soffice
deb  gnome-shell
deb  Docky
deb  google-chrome-stable
deb  soffice
deb  gnome-settings-daemon
deb  gnome-terminal-server

Hvis der ikke sendes nogen ressourceidentifikator med id, omdanner xkill musemarkøren til et specielt symbol, der ligner 'X'. Klik bare på det vindue, du vil dræbe, og dette vil dræbe dets kommunikation med serveren eller sige, at programmet bliver dræbt.

$ xkill

Det er vigtigt at bemærke, at xkill ikke garanterer, at lukning af kommunikationen dræber/afbryder den med succes. Det meste af applikationen dræbes, når kommunikationen til serveren er lukket. Imidlertid kører nogle få stadig.

Punkter, der skal nævnes her:

  1. Dette værktøj fungerer kun, når X11-serveren kører, da xkill er en del af X11-værktøjet.
  2. Forveks ikke med at lukke og dræbe en ressource. Mens du dræber en ressource, kan du forvente, at den ikke går ud rent.
  3. Dette er ikke en erstatning for drabsprogram.

Nej, du behøver ikke at affyre xkill fra Linux Command Line. Du kan indstille en tastaturgenvej og ringe til xkill ved blot at stanse den samme tastekombination.

Sådan konfigureres en tastaturgenvej på et typisk gnome3-skrivebordsmiljø.

Gå til Indstillinger -> Vælg tastatur, klik på '+' og tilføj navn og kommando. Klik på den nye post, og tryk på den tast, du vil bruge som genvejstastkombination. Jeg gjorde Ctrl + Alt + Shift + x.

Næste gang du vil dræbe en X-ressource, skal du bare kalde tastekombinationen (Ctrl + Alt + Shift + x), og du vil bemærke, at din musemarkør ændres til x. Klik på x ressource, du vil dræbe, og alt gjort!