50% korting alle abonnementen, tijdelijk aanbod. Vanaf $2.48/mo
7 min resterend
Servers & besturingssysteem

Hoe los je de systemctl: Command Not Found-fout op op Ubuntu

Nick Zilver By Nick Zilver 7 minuten lezen Bijgewerkt 20 feb 2025
hoe los je systemctl: command not found op

Een van de handigste en krachtigste tools voor Linux-gebruikers, vooral bij moderne distributies zoals Ubuntu, is de systemctl-commando. Dit command-line hulpprogramma wordt doorgaans gebruikt om te communiceren met systemd, het systeem en de servicebeheerder.

Met dit commando kun je systeemservices beheren, hun status bekijken, ze starten of stoppen, en in- of uitschakelen bij het opstarten van het systeem. Handig toch? Maar als het systemctl-commando niet wordt gevonden of herkend, krijg je te maken met de sudo: systemctl: command not found fout.

Dus, laten we bespreken wat de "systemctl: command not found" foutmelding betekent, de verschillende redenen waarom je deze fout tegenkomt, en hoe je deze fout kunt oplossen.

Wat betekent 'systemctl: opdracht niet gevonden'?

Simpel gezegd betekent de fout "systemctl: command not found" dat het opdrachtregelprogramma systemctl niet beschikbaar of toegankelijk is in de huidige omgeving. Dit kan verschillende oorzaken hebben, maar het komt uiteindelijk altijd neer op één van twee dingen: de omgeving is geen systeemomgeving, of het systemd-pakket is niet geïnstalleerd.

De systemd-package is waarschijnlijk niet geïnstalleerd, of je Linux-distro of -versie gebruikt geen systemd maar een ouder servicebeheer zoals init.d. Een andere mogelijkheid: de PATH-omgevingsvariabele bevat de map met systemctl niet, waardoor je shell het commando niet kan vinden.

Nu je een idee hebt van wat er mis kan zijn met je systeem en de fout "systemctl: command not found" veroorzaakt, kijken we hoe je het probleem kunt opsporen en oplossen.

De fout 'systemctl: opdracht niet gevonden' oplossen

In de volgende stappen controleren we of systemd op je systeem is geïnstalleerd en of systemctl beschikbaar is, en we zoeken het pad van systemctl op. Zodra het probleem is vastgesteld, nemen we de nodige stappen om de fout op te lossen.

1. Controleren of je systeem systemd gebruikt

Omdat Ubuntu systemctl alleen werkt als het systemd-pakket is geïnstalleerd, controleren we eerst of jouw systeem systemd gebruikt. Voer hiervoor het volgende commando uit:

ps -p 1 -o comm=

Of controleer de systemd-versie met het volgende commando:

systemd --version

Als de uitvoer systemd is, gebruikt je systeem systemd als init-systeem en is systemctl beschikbaar. Is de uitvoer init of een andere procesmanager, dan draait je systeem op een alternatief init-systeem en werkt systemctl niet, tenzij je migreert naar systemd.

Als je een ouder init-systeem zoals Upstart of SysVinit gebruikt en wilt overstappen naar systemd om systemctl te kunnen gebruiken, volg dan deze stappen:

1. Installeer systemctl door systemd te installeren met het volgende commando:

sudo apt install systemd-sysv

2. Start je systeem opnieuw op met dit commando:

sudo reboot

3. Controleer of je systeem nu systemd gebruikt:

ps -p 1 -o comm=

De uitvoer zou nu systemd moeten zijn.

2. Controleren of systemd correct is geïnstalleerd

Onder normale omstandigheden werkt het commando systemctl correct wanneer systemd is geïnstalleerd en actief is als init-systeem. Als dat niet het geval is, ontbreekt het systemd-pakket of is het onjuist geïnstalleerd.

Als je een minimale versie van Ubuntu gebruikt, zoals een Docker-container of cloud-instantie, is systemd mogelijk niet standaard geïnstalleerd. Voer de volgende commando's uit om systemctl via systemd te installeren:

sudo apt update
sudo apt install systemd

Controleer na de installatie of het commando systemctl beschikbaar is.

3. Het PATH van systemctl controleren

Een veelvoorkomende oorzaak van de foutmelding 'systemctl not found' is dat systemctl wel geïnstalleerd is, maar niet in het PATH van je systeem staat. Gebruik het volgende commando om te controleren of de systemd-binaries aanwezig zijn in de gebruikelijke mappen, zoals /bin, /usr/bin of /usr/local/bin:

which systemctl

Als systemctl gevonden wordt in een van de mappen in je PATH, krijg je een uitvoer zoals deze:

/usr/bin/systemctl

Als systemctl niet gevonden wordt in een van de mappen in PATH, geeft het commando which geen uitvoer terug.

Het is echter mogelijk dat systemctl toch niet werkt, ook al wordt het gevonden in je mappen. Dat kan gebeuren wanneer systemctl zich bevindt in een map die niet is opgenomen in het PATH. In dat geval moet je controleren of de map waarin systemctl zich bevindt deel uitmaakt van je systeem met het volgende commando:

echo $PATH

De uitvoer ziet er ongeveer zo uit:

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

Controleer nu of de map waarin systemctl staat (die je hebt verkregen via het commando which) voorkomt in de uitvoer van het commando echo $PATH.

Als de map van systemctl niet voorkomt in de uitvoer van echo $PATH, moet je deze toevoegen aan je PATH-variabele. Voer daarvoor het volgende commando uit:

Voor Bash-gebruikers, open het bestand ~/.bashrc in een teksteditor:

nano ~/.bashrc

Voeg de volgende regel toe aan het einde van het bestand:

export PATH=$PATH:/usr/bin

/usr/bin is in dit voorbeeld de map waar systemctl zich bevindt.

Sla het bestand op en sluit het door op CTRL + X te drukken, vervolgens Y om te bevestigen en Enter om op te slaan.

Voor Zsh-gebruikers, open het bestand ~/.zshrc in een teksteditor:

nano ~/.zshrc

Voeg de volgende regel toe aan het einde van het bestand:

export PATH=$PATH:/usr/bin

/usr/bin is in dit voorbeeld de map waar systemctl zich bevindt.

Sla het bestand op en sluit het door op CTRL + X te drukken, vervolgens Y om te bevestigen en Enter om op te slaan.

Gebruik na het uitvoeren van de bovenstaande stappen het commando echo $PATH om te controleren of de map van systemctl is toegevoegd aan je PATH. Je kunt systemctl nu uitvoeren zonder de foutmelding 'systemctl: command not found' te krijgen.

4. Systemd opnieuw installeren

Als de vorige oplossingen niet werken en je nog steeds de foutmelding 'command not found' krijgt, kan een volledige herinstallatie van systemd het probleem oplossen. Voer daarvoor de volgende commando's uit:

sudo apt purge systemd
sudo apt install systemd

Start daarna je systeem opnieuw op met dit commando:

sudo reboot

Controleer of systemctl nu correct werkt.

5. Controleren of systemd correct is geconfigureerd

Soms is de oorzaak zo eenvoudig als een verkeerd geconfigureerde installatie van systemd, wat resulteert in de foutmelding 'systemctl: command not found'. Voer het volgende commando uit om dit op te lossen:

sudo dpkg-reconfigure systemd

6. Verouderd Windows-subsysteem voor Linux (WSL)

Als je toevallig Ubuntu gebruikt onder WSL (Windows-subsysteem voor Linux) moet je weten dat oudere versies van WSL, zoals WSL 1, systemctl niet native ondersteunen. Welke van de eerder genoemde oplossingen je ook probeert, je kunt systemctl niet uitvoeren.

Als je gebruik wilt maken van de functies van systemctl, moet je upgraden naar WSL 2, dat betere ondersteuning biedt voor systemd. Weet je niet zeker of je WSL gebruikt? Controleer het met het volgende commando:

uname -a

Als de uitvoer WSL vermeldt, is dat de reden waarom je de foutmelding "systemctl: command not found" ziet.

7. sudo service als alternatief voor systemctl

Als je de foutmelding "systemctl: command not found" krijgt omdat je systeem geen systemd gebruikt, kun je het commando sudo service gebruiken om services te beheren. Dit commando werkt met oudere init-systemen zoals SysVinit of Upstart. Dat is handig voor Ubuntu-systemen die gebruikmaken van init-scripts in plaats van systemd.

Om een service te starten, voer je bijvoorbeeld het volgende uit:

sudo service <service_name> start

Laatste Gedachten

systemd en het bijbehorende commandoregelgereedschap systemctl hebben de meeste oudere init-systemen zoals SysVinit en Upstart vervangen. Hoewel systemd niet voor iedereen de ideale keuze is vanwege het monolithische ontwerp en de niet-Unix-filosofie, geldt het nog altijd als de gangbare standaard. Hopelijk heb je de fout met het niet beschikbare systemctl-commando inmiddels kunnen oplossen, want zonder dit commandoregelgereedschap zijn de mogelijkheden van systemd ernstig beperkt.

Veelgestelde vragen

Wat is systemctl en wat betekent de foutmelding systemctl: Command Not Found?

systemctl is een commandoregelgereedschap voor het beheren van services op Linux-systemen die systemd draaien, zoals Ubuntu. De foutmelding "systemctl: command not found" verschijnt wanneer het gereedschap niet beschikbaar of niet toegankelijk is, meestal omdat het systeem geen systemd gebruikt of het systemd-pakket niet is geïnstalleerd.

Is systemctl beschikbaar op alle versies van Ubuntu?

Nee, systemctl is niet beschikbaar op alle versies van Ubuntu. systemctl maakt deel uit van het systemd-init-systeem, dat standaard is in de meeste moderne versies van Ubuntu (vanaf versie 15.04). Oudere versies of bepaalde minimale installaties kunnen in plaats daarvan alternatieve init-systemen gebruiken, zoals SysVinit of Upstart.

Delen

Meer van de blog

Verder lezen.

Omslagafbeelding van de beste self-hosted apps die je met Cosmos Cloud kunt draaien, met app-panelen rondom een Cosmos-dashboard.
Servers & besturingssysteem

De beste self-hosted apps voor gebruik met Cosmos Cloud: bestanden, media, wachtwoorden, automatisering en meer!

Maybe je hebt Cosmos Cloud opgezet en wilt weten welke apps er goed bij passen, of je twijfelt nog over Cosmos en wilt eerst zien hoe goed het in jouw workflow past

Nick ZilverNick Zilver 16 minuten lezen
Portainer vs Cosmos Cloud voor het beheren van Docker-apps, met hybride configuratiediagram en neon ops vs. toegangsblokken.
Servers & besturingssysteem

Portainer vs Cosmos Cloud: Wat Past het Beste bij Docker App-beheer

Als je Docker al kent en gewoon op zoek bent naar de overzichtelijkste manier om een groeiende app-stack te draaien, hier is het korte antwoord op Portainer vs Cosmos Cloud. Portainer is de sterkere keuze voor direc

Nick ZilverNick Zilver 14 minuten lezen
Cosmos Cloud vs CasaOS vs Umbrel - afbeelding met drie self-hosted paden in één abstract cloudnetwerk.
Servers & besturingssysteem

Cosmos Cloud vs CasaOS vs Umbrel: Welk Self-Hosted Platform Past bij Jouw Setup?

Het korte antwoord: CasaOS is nog steeds het makkelijkste startpunt, Umbrel voelt het meest verzorgd en overzichtelijk aan, en Cosmos Cloud wordt interessanter zodra je meer controle wilt over doma

Nick ZilverNick Zilver 11 min lezen

Klaar om in te zetten? Vanaf $2.48/mnd.

Onafhankelijke cloud, sinds 2008. AMD EPYC, NVMe, 40 Gbps. 14 dagen geld-terug-garantie.