Zoeken op website

Hoe Linux-processen/niet-reagerende applicaties te beëindigen met behulp van de opdracht 'xkill'


Hoe doden we een bron/proces in Linux? Het is duidelijk dat we de PID van de bron vinden en vervolgens de PID doorgeven aan het kill-commando.

Nauwkeuriger gezegd: we kunnen PID van een bron (bijvoorbeeld terminal) als volgt vinden:


ps -A | grep -i terminal

6228 ?        00:00:00 gnome-terminal

In de bovenstaande uitvoer is het getal ‘6228‘ de PID van het proces (gnome-terminal). Gebruik het kill-commando om het proces te beëindigen, zoals hieronder weergegeven.


kill 6228

Het kill commando stuurt een signaal naar een proces, waarvan de PID samen met het commando wordt doorgegeven.

Als alternatief kunnen we de opdracht pkill gebruiken, die een proces beëindigt op basis van de naam en andere attributen van een proces. Om een proces te beëindigen waarvan de naam terminal is, moeten we het volgende uitvoeren:


pkill terminal

Opmerking: De lengte van de procesnaam in pkill is beperkt tot 15 tekens.

pkill lijkt handiger omdat je een proces kunt beëindigen zonder dat je de PID ervan hoeft te achterhalen. Maar als u een betere controle over uw systeem wilt hebben, is er niets beter dan het commando ‘kill’. Door gebruik te maken van Kill krijgt u beter inzicht in welk proces u doodt.

We hebben al een gedetailleerde handleiding over kill-, pkill- en killall-opdrachten besproken.

Voor degenen die X server gebruiken, is er nog een tool genaamd xkill die een proces vanuit zijn X-venster kan beëindigen zonder de procesnaam of zijn PID door te geven.

Het hulpprogramma xkill dwingt de X-server om de communicatie met zijn client te beëindigen, wat resulteert in het doden van de client door zijn X-bron. xkill, dat deel uitmaakt van de X11-hulpprogramma's, is erg handig bij het doden van onnodige vensters.

Het ondersteunt opties zoals verbinding maken met een specifieke X-server (-display displayname) met behulp van het weergavenummer wanneer meerdere X-servers tegelijkertijd op een host draaien en alle clients beëindigen (-all, niet aanbevolen) met vensters op het hoogste niveau op het scherm en houd rekening met frame (-frame).

Om een lijst te krijgen van alle clients die u kunt gebruiken:


xlsclients
Voorbeelduitvoer

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

Als er geen resource-ID wordt doorgegeven met id, verandert xkill de muisaanwijzer in een speciaal symbool, vergelijkbaar met ‘X‘. Klik gewoon op het venster dat u wilt doden en dit zal de communicatie met de server beëindigen of zeggen dat het programma wordt gedood.


xkill

Het is belangrijk op te merken dat xkill niet garandeert dat het beëindigen van de communicatie deze met succes zal beëindigen/afbreken. Het grootste deel van de applicatie wordt gedood wanneer de communicatie met de server wordt gesloten. Er kunnen er echter nog enkele actief zijn.

Punten die hier vermeld moeten worden:

  1. Deze tool werkt alleen als de X11-server actief is, omdat xkill een onderdeel is van het X11-hulpprogramma.
  2. Verwar dit niet met het sluiten en doden van een hulpbron. Terwijl je een hulpbron doodt, kun je verwachten dat deze niet netjes wordt afgesloten.
  3. Dit is geen vervanging van het hulpprogramma voor doden.
Moet ik naar de Linux-opdrachtregel gaan om xkill aan te roepen?

Nee, je hoeft xkill niet te activeren vanaf de Linux Command Line. U kunt een sneltoets instellen en xkill aanroepen door gewoon dezelfde toetscombinatie in te toetsen.

Hier ziet u hoe u een sneltoets instelt op een typische gnome3 bureaubladomgeving.

Ga naar Instellingen –> Selecteer toetsenbord, klik op ‘+’ en voeg de naam en opdracht toe. Klik op de nieuwe invoer en druk op de toets die u als sneltoetscombinatie wilt gebruiken. Ik heb Ctrl+Alt+Shift+x gedaan.

De volgende keer dat u een X-bron wilt doden, gebruikt u gewoon de toetsencombinatie (Ctrl+Alt+Shift+x) en u zult merken dat uw muisaanwijzer is veranderd in x. Klik op x bron die je wilt doden en klaar!