Overzicht van kill
`kill`-opdracht stuurt signalen naar processen met een specifieke proces-ID (PID). Het meest voorkomende signaal is een verzoek om het proces te beëindigen, maar afhankelijk van het type signaal kan het proces op verschillende manieren reageren. Bijvoorbeeld, het kan gevraagd worden om het proces te pauzeren of configuratiebestanden opnieuw te laden.
Belang van proces-ID (PID)
`kill`-opdracht accepteert in principe een PID als argument. Het is daarom belangrijk om te weten wat de exacte PID is van het proces dat je wilt beheren. Je kunt de PID van een proces controleren met de `ps`-opdracht of de `top`-opdracht.
Belangrijkste functies van kill
- Proces beëindigen: Beëindigt een proces dat niet langer nodig is of dat niet goed functioneert, dit kan gedwongen of normaal zijn.
- Proces herstarten/herladen: Stuurt een specifiek signaal om het proces te dwingen configuratiebestanden opnieuw te lezen of te herstarten.
- Beheer van systeembronnen: Beëindigt processen die onterecht veel bronnen verbruiken om de stabiliteit van het systeem te waarborgen.
Meest gebruikte signalen
Er zijn verschillende signalen, maar de volgende twee worden het meest gebruikt:
Belangrijkste signalen
- **SIGTERM (15, standaard)**: Stuurt een vriendelijk verzoek aan het proces om 'te beëindigen'. Het proces kan opruimwerkzaamheden uitvoeren en afsluiten wanneer het dit signaal ontvangt. In de meeste gevallen wordt dit signaal eerst geprobeerd.
- **SIGKILL (9)**: Beëindigt het proces onmiddellijk en gedwongen. Het proces kan dit signaal niet negeren of onderscheppen, en wordt beëindigd zonder de kans op opruimwerkzaamheden. Dit moet als laatste redmiddel worden gebruikt.
Belangrijkste kill-opdrachtopties
`kill`-opdracht gebruikt signaalnummers of signaalnamen om processen te beheren. Bij het verzenden van een signaal naar een specifiek proces moet je de exacte PID van dat proces opgeven.
1. Basisgebruik
2. Nuttige signalen
3. Lijst van alle signalen bekijken
Gegenereerde opdracht:
Probeer de opdrachtcombinaties.
Uitleg:
`kill` Voer het commando uit.
Combineer deze opties en voer de opdracht virtueel uit met de AI.
killall-opdracht (processen beëindigen op naam)
`killall`-opdracht gebruikt in tegenstelling tot `kill` de naam van het proces in plaats van de PID om signalen naar alle processen met die naam te sturen. Dit is zeer handig wanneer je alle instanties van een specifieke toepassing wilt beëindigen.
Normaal beëindigen van processen op naam
killall nginx
Stuurt een SIGTERM signaal naar alle processen met de naam `nginx` om een normale beëindiging te verzoeken.
Gedwongen beëindigen van processen op naam
killall -9 firefox
Stuurt een SIGKILL signaal naar alle processen met de naam `firefox` om ze onmiddellijk te beëindigen.
Alleen processen van specifieke gebruiker beëindigen
killall -u $(whoami) chrome
Beëindigt alleen de `chrome` processen van de huidige gebruiker. Dit heeft geen effect op `chrome` processen van andere gebruikers.
pkill-opdracht (processen beëindigen op patroon)
`pkill`-opdracht beëindigt processen op basis van hun naam, vergelijkbaar met `killall`, maar biedt meer flexibiliteit doordat het reguliere expressiepaterns gebruikt om processen te vinden. Dit is handig om processen te vinden met een gedeeltelijke naam of om meerdere verwante processen tegelijk te beëindigen.
Normaal beëindigen van processen op patroon
pkill http
Stuurt een SIGTERM signaal naar alle processen waarvan de naam 'http' bevat. (Bijvoorbeeld: `httpd`, `apache2` etc.)
Gedwongen beëindigen van processen op patroon
pkill -9 mysql
Stuurt een SIGKILL signaal naar alle processen waarvan de naam 'mysql' bevat om ze gedwongen te beëindigen.
Processen beëindigen die aan specifieke gebruiker toebehoren
pkill -u www-data php-fpm
Beëindigt alle 'php-fpm' processen die toebehoren aan de gebruiker `www-data`.
Voorbeelden van gebruik
Leer hoe je de processen van het systeem effectief beheert aan de hand van verschillende voorbeelden van gebruik van de `kill`, `killall` en `pkill`-opdrachten.
Specifieke proces-ID (PID) beëindigen
kill 12345
Stuurt een SIGTERM signaal naar het proces met PID `12345` om een normale beëindiging te verzoeken.
Gedwongen beëindigen van proces (gebruik PID)
kill -9 54321
Als het proces met PID `54321` niet reageert, wordt het gedwongen beëindigd met een SIGKILL signaal.
Nginx proces herladen (gebruik SIGHUP)
sudo kill -1 $(cat /run/nginx.pid)
Zoekt naar het masterproces (PID) van Nginx en stuurt een SIGHUP signaal om het configuratiebestand opnieuw te lezen. (Het PID van het Nginx-proces kan worden gecontroleerd met `ps aux | grep nginx` enz.)
Alle Chrome-browsers beëindigen op naam
killall chrome
Beëindigt alle actieve Chrome-browsers. (Het kan zijn dat niet opgeslagen inhoud verloren gaat.)
Alle processen van gebruiker 'johndoe' beëindigen
sudo killall -9 -u johndoe
Beëindigt alle processen die worden uitgevoerd door de gebruiker `johndoe`. (Beheerdersrechten vereist.)
Proces beëindigen dat veel CPU gebruikt (voorbeeld)
# 1. PID controleren met top of htop (bijv. 12345)
# 2. Beëindig de betreffende PID
kill 12345
Een veelvoorkomend scenario is het beëindigen van een proces nadat de PID is gecontroleerd met `top` of `htop`.