Overzicht
killall is een krachtig hulpmiddel waarmee je meerdere processen kunt beëindigen op basis van hun naam in plaats van hun proces-ID (PID). Omdat het gericht is op alle instanties met dezelfde naam, is het bijzonder handig voor het beëindigen van alle vensters of achtergrondservices van een specifieke applicatie.
Belangrijkste Kenmerken
- Beëindigen op basis van procesnaam
- Ondersteuning voor het verzenden van verschillende signalen (standaard SIGTERM)
- Mogelijkheid om te filteren op verschillende criteria zoals gebruiker, tijd, etc.
- Verwerkt meerdere instanties tegelijk
Belangrijkste Opties
Het killall commando biedt verschillende opties om de manier waarop processen worden beëindigd en waarop ze worden gericht, nauwkeurig te regelen.
Standaard Gedrag en Signalen
Proces Filtering
Gegenereerde opdracht:
Probeer de opdrachtcombinaties.
Uitleg:
`killall` Voer het commando uit.
Combineer deze opties en voer de opdracht virtueel uit met de AI.
Gebruiksvoorbeelden
Verschillende voorbeelden van hoe het killall commando kan worden gebruikt.
Alle processen met een specifieke naam beëindigen
killall firefox
Beëindigt alle instanties van de Firefox webbrowser. Stuurt het standaard signaal SIGTERM (verzoek om normale beëindiging).
Geforceerd beëindigen met een specifiek signaal
killall -s SIGKILL chrome
Beëindigt alle instanties van de Chrome webbrowser met het SIGKILL (geforceerde beëindiging) signaal. Dit signaal geeft processen geen kans om op te ruimen, dus gebruik het met voorzichtigheid.
Beëindigen in interactieve modus
killall -i sshd
Vraagt de gebruiker om bevestiging voor elke instantie van het sshd (SSH daemon) proces voordat het wordt beëindigd. Typ 'y' om te beëindigen.
Processen van een specifieke gebruiker beëindigen
killall -u user1
Beëindigt alle processen die door de gebruiker 'user1' worden uitgevoerd.
Wachten op procesbeëindiging
killall -w myapp
Het commando wacht tot het momenteel actieve 'myapp' proces volledig is beëindigd.
Installatie
Het killall commando is standaard geïnstalleerd als onderdeel van het 'psmisc' pakket op de meeste Linux-distributies. Als het niet op je systeem is geïnstalleerd, kun je het installeren met de volgende commando's.
Debian/Ubuntu
sudo apt update && sudo apt install psmisc
Installeert het psmisc pakket met de APT pakketbeheerder.
CentOS/RHEL/Fedora
sudo yum install psmisc
# of
sudo dnf install psmisc
Installeert het psmisc pakket met de YUM of DNF pakketbeheerder.
Tips & Waarschuwingen
Handige tips en zaken om op te letten bij het gebruik van het killall commando.
Voorzichtigheid bij gebruik van SIGKILL (-9)
SIGKILL (signaalnummer 9) beëindigt een proces geforceerd en onmiddellijk, zonder dat het proces de kans krijgt om geopende bestanden of gegevens op te ruimen. Dit kan leiden tot gegevensverlies of systeeminstabiliteit, dus het moet alleen als laatste redmiddel worden gebruikt nadat andere signalen (zoals SIGTERM) zijn geprobeerd en gefaald.
- **Gebruik eerst SIGTERM (standaard)**: De meeste applicaties sluiten normaal af wanneer ze SIGTERM ontvangen.
- **Gebruik SIGKILL als laatste redmiddel**: Gebruik dit alleen wanneer een proces niet reageert.
Controleer de exacte procesnaam
killall gebruikt de exacte procesnaam. Het is raadzaam om de exacte naam van het proces dat je wilt beëindigen te controleren met het commando `ps aux | grep <proces_naam>`.
- Voorbeeld: `ps aux | grep firefox`
Verschil tussen killall en pkill
`killall` werkt op basis van exacte procesnamen, terwijl `pkill` reguliere expressies kan gebruiken om procesnamen te matchen, wat flexibeler zoeken en beëindigen mogelijk maakt.
- `killall`: Exacte naam matching (bijv. `killall firefox`)
- `pkill`: Regex matching (bijv. `pkill -f 'firef[o]x'`)
- `pkill` breidt de functionaliteit van het `kill` commando uit zonder direct PID's te specificeren.
Voorzichtigheid bij het beëindigen van systeemprocessen
Het beëindigen van essentiële systeemprocessen met `killall` kan leiden tot systeeminstabiliteit of crashes. Wees extra voorzichtig, vooral wanneer je het uitvoert met `root`-rechten.
- Bijvoorbeeld: Voer nooit `killall systemd` of `killall init` uit.