Zoeken op website

Hoe je het Linux-proces kunt beëindigen met behulp van Kill, Pkill en Killall


In Linux verwijst het doden van een proces naar het beëindigen of stoppen van de uitvoering van een actief programma. Aan elk lopend proces wordt een uniek identificatienummer toegewezen, bekend als de Process ID (PID), waarmee het systeem de momenteel actieve processen kan volgen.

In dit artikel zullen we meer te weten komen over het Linux-kill-proces en hoe je een proces kunt vinden en beëindigen met behulp van verschillende tools en opdrachten in Linux.

Wat is het Linux-proces

Simpel gezegd lijkt een proces op een programma dat momenteel op een systeem draait, en elk proces heeft zijn eigen speciale ID (PID)-nummer. Soms kan een actief programma of proces zich echter misdragen, niet meer reageren of teveel systeembronnen in beslag nemen.

Wanneer dat gebeurt, moeten we het proces stoppen of “kill” en dit is waar het kill-commando van pas komt.

Wat is Kill Command

Het commando “kill” is een cruciaal hulpprogramma waarmee gebruikers signalen kunnen sturen (stoppen of beëindigen) naar momenteel actieve processen, waarbij ze worden geïnstrueerd om netjes af te sluiten of met kracht te beëindigen.

Het kill-commando is handig wanneer u de activiteiten van verschillende programma's op uw Linux-systeem moet beheren en controleren, zoals:

  • Om elk geautomatiseerd proces te stoppen.
  • Om een proces te stoppen dat per ongeluk is gestart.
  • Om een proces te stoppen dat te veel geheugen gebruikt.
  • Om elk lopend proces in Linux met kracht te beëindigen.
  • Om een proces dat op de achtergrond draait te stoppen.

Door het kill commando van /usr/bin te gebruiken, beschikt u over een aantal extra mogelijkheden om een proces te beëindigen op basis van de procesnaam met behulp van pkill, dat processen identificeert op basis van hun namen.

Hoe u de proces-ID of procesnaam kunt vinden

Voordat u een lopend proces beëindigt, is het essentieel om de proces-ID (PID) of naam ervan te identificeren met behulp van de volgende ps-opdracht die informatie weergeeft over alle actieve processen op het systeem met hun PID (proces-ID) en andere informatie.

ps -ef

Als je een specifieke procesnaam PID wilt vinden, kun je een grep-opdracht gebruiken die alle processen weergeeft die op het systeem draaien en de resultaten filteren om alleen de processen weer te geven die de term “mariadb< bevatten. /sterk>“.

ps -ef | grep mariadb

Als alternatief kunt u de PID van een proces direct op naam vinden met behulp van de opdracht pgrep, zoals weergegeven.

pgrep mariadb

Hoe een proces in Linux te beëindigen

Denk na over machtigingen voordat u een proces beëindigt, stopt of beëindigt. Als u een rootgebruiker bent, kunt u elk proces stoppen, maar als u een normale gebruiker bent, moet u een “sudo” toevoegen vóór de opdracht of overschakelen naar een root met “ su” om het beëindigingscommando te gebruiken.

De gebruikelijke syntaxis voor het kill-commando is:

kill [signal or option] PID(s)
OR
sudo kill [signal or option] PID(s)

Voor een kill-commando zou een Signaalnaam kunnen zijn:

Duidelijk uit het bovenstaande gedrag:

  • SIGTERM is de standaard en veiligste manier om een proces te beëindigen.
  • SIGHUP is een minder veilige manier om een proces te beëindigen dan SIGTERM.
  • SIGKILL is de meest onveilige manier van de drie hierboven genoemde manieren om een proces te beëindigen dat een proces beëindigt zonder op te slaan.

In Linux zijn er verschillende signalen die u kunt gebruiken om processen te stoppen, beëindigen of pauzeren. Je kunt alle beschikbare kill-signalen met hun naam en bijbehorende nummers weergeven met behulp van de volgende opdracht, die wordt weergegeven

kill -l

Hoewel er meerdere signalen beschikbaar zijn, gebruiken we in de meeste gevallen alleen SIGKILL (9) en SIGTERM (15).

Om een proces te beëindigen, moeten we de proces-ID van een proces kennen. Een Proces is een instantie van een programma. Elke keer dat een programma start, wordt er automatisch een unieke PID voor dat proces gegenereerd.

Elk proces in Linux heeft een pid. Het eerste proces dat start wanneer het Linux-systeem wordt opgestart, is het – init proces, en daarom wordt in de meeste gevallen de waarde ‘1‘ toegekend.

Init is het hoofdproces en kan op deze manier niet worden beëindigd, wat ervoor zorgt dat het hoofdproces niet per ongeluk wordt beëindigd. Init beslist en laat zich doden, waarbij doden slechts een verzoek om uitschakeling is.

Voordat we een stap verder gaan en een kill-commando uitvoeren, moeten we enkele belangrijke punten noteren:

  • Een gebruiker kan al zijn processen beëindigen.
  • Een gebruiker kan het proces van een andere gebruiker niet beëindigen.
  • Een gebruiker kan geen processen beëindigen die het systeem gebruikt.
  • Een rootgebruiker kan het proces op systeemniveau en het proces van elke gebruiker beëindigen.

Om het mariadb proces PID te beëindigen, gebruikt u het kill-commando zoals weergegeven.

kill -9 3383

Met het bovenstaande commando wordt het proces met pid=3383 beëindigd, waarbij PID een numerieke waarde van het proces is.

Een andere manier om dezelfde functie uit te voeren kan worden herschreven als.

kill -SIGTERM 3383

Op dezelfde manier is ‘kill -9 PID’ vergelijkbaar met ‘kill -SIGKILL PID’ en omgekeerd.

Om te bevestigen dat het proces is beëindigd, kunt u opnieuw het ps-commando gebruiken.

ps -ef | grep mariadb

Hoe meerdere processen in Linux te doden

Om meerdere processen in Linux te beëindigen met behulp van hun proces-ID's (PID's), kunt u de opdracht kill gebruiken in combinatie met de relevante PID-nummers.

Identificeer eerst de PID's van de processen die u wilt beëindigen met behulp van de opdracht ps of pgrep.

ps aux | grep apache2
OR
pgrep apache2

Zodra u de PID's heeft, gebruikt u het kill commando om ze te beëindigen.

kill -9 PID1 PID2 PID3

Hoe een proces in Linux te beëindigen met behulp van de procesnaam

Om een proces te beëindigen met behulp van de procesnaam, gebruiken we het pkill commando, wat een versie is van het kill commando waarmee u de procesnaam of een patroon kunt vermelden een proces opzoeken.

U moet zich bewust zijn van de procesnaam voordat u gaat doden, en het invoeren van een verkeerde procesnaam kan u in de steek laten.

pkill mysqld

Wat als een proces te veel instanties en meerdere onderliggende processen heeft, dan hebben we een commando ‘killall’ dat de procesnaam als argument gebruikt in plaats van het procesnummer.

Hoe een proces in Linux te beëindigen met behulp van het Killall-commando

Het belangrijkste verschil tussen killall en kill is dat killall een proces met zijn naam kan beëindigen, terwijl het kill-commando afhankelijk is van de proces-ID (pid).

Om alle mysql-instanties samen met onderliggende processen te beëindigen, gebruikt u de opdracht als volgt.

killall mysqld
OR
pkill mysqld

U kunt altijd de status van het proces verifiëren, of het nu actief is of niet, met behulp van een van de onderstaande opdrachten.

systemctl status mysql
pgrep mysql
ps -aux | grep mysql

Grafische Linux-systemen bewaken tools zoals htop of gnome-system-monitor en bieden een gebruiksvriendelijke interface om processen te vinden en te beëindigen.

Conclusie

Dat was het voor nu van mij. Ik kom snel terug met een ander interessant en informatief onderwerp. Blijf tot die tijd op de hoogte en verbonden met Tecmint en zorg voor uw gezondheid. Vergeet niet uw waardevolle feedback te delen in het opmerkingengedeelte.