Op vrijwel elke moderne Linux-server draaien achtergrondprocessen zoals webservers, databases en mailservices via systemd. Met systemd beheer je deze services: starten, stoppen, herstarten, automatisch laten opstarten en controleren of alles gezond draait. In dit artikel leer je de belangrijkste commando’s, hoe je logs raadpleegt en hoe je een eigen service aanmaakt, zodat je zelf storingen kunt oplossen zonder gelijk je hostingpartij te bellen.
Wat is systemd en waarom is het belangrijk
Systemd is het init-systeem dat op de meeste Linux-distributies (Ubuntu, Debian, CentOS, AlmaLinux) als eerste proces opstart en vervolgens alle andere diensten beheert. Denk aan de webserver (LiteSpeed of Apache), de databaseserver (MySQL/MariaDB), SSH en cronjobs. Elke dienst draait als een unit, met een configuratiebestand dat beschrijft hoe en wanneer de dienst moet starten.
Het voordeel van systemd is dat je met één consistente set commando’s alle diensten kunt beheren, ongeacht welke software erachter zit. Dit maakt beheer overzichtelijk en voorspelbaar, zowel op een eigen VPS als op een managed server.
Basiscommando’s voor services beheren
Alle systemd-commando’s lopen via systemctl. Hieronder de belangrijkste commando’s die je nodig hebt om een service te beheren, bijvoorbeeld nginx, mariadb of sshd.
systemctl status nginxβ toont de huidige status van de dienstsystemctl start nginxβ start de dienstsystemctl stop nginxβ stopt de dienstsystemctl restart nginxβ herstart de dienst volledigsystemctl reload nginxβ herlaadt configuratie zonder verbindingen te verbrekensystemctl enable nginxβ zorgt dat de dienst automatisch start bij opstarten van de serversystemctl disable nginxβ schakelt automatisch opstarten uit
De meeste commando’s vereisen root-rechten, dus gebruik sudo ervoor als je niet als root bent ingelogd.
reload in plaats van restart bij webservers als je alleen een configuratiewijziging hebt doorgevoerd. Dit voorkomt downtime voor lopende verbindingen.Logs bekijken en problemen opsporen
Wanneer een service niet start of onverwacht stopt, geeft systemctl status vaak al een eerste aanwijzing. Voor uitgebreidere logs gebruik je journalctl, de centrale logservice van systemd.
journalctl -u nginxβ toont alle logregels van de nginx-servicejournalctl -u nginx -fβ volgt logs live, handig tijdens het testenjournalctl -u nginx --since "1 hour ago"β filtert op tijdstipjournalctl -p errβ toont alleen foutmeldingen van alle diensten
Loopt een service steeds vast kort na het starten, controleer dan of de configuratie geldig is (bijvoorbeeld met nginx -t voor nginx) voordat je de service herstart. Draai je op een server met Plesk, dan kun je veel van deze statussen ook grafisch inzien via het Plesk-paneel, inclusief serviceherstarten zonder terminal.
Controleer de status
Voer systemctl status [naam] uit om te zien of de dienst draait en of er foutmeldingen zijn.
Bekijk de logs
Gebruik journalctl -u [naam] -f om in detail te zien wat er misgaat tijdens het opstarten.
Test de configuratie
Controleer met de ingebouwde testoptie van de software (zoals nginx -t) of de configuratie geldig is.
Herstart de service
Voer systemctl restart [naam] uit en controleer opnieuw de status om te bevestigen dat alles draait.
Een eigen systemd service aanmaken
Draai je een eigen applicatie of script dat altijd actief moet blijven, dan kun je hier een eigen unit-bestand voor maken. Maak een bestand aan in /etc/systemd/system/mijnapp.service met minimaal de volgende inhoud:
[Unit]met een beschrijving en afhankelijkheden (bijvoorbeeld netwerk)[Service]met het commando om de applicatie te starten, het herstartbeleid en eventueel de gebruiker waaronder het proces moet draaien[Install]met het doel (meestalmulti-user.target) zodat de dienst automatisch meestart
Na het aanmaken voer je systemctl daemon-reload uit zodat systemd het nieuwe bestand herkent, en vervolgens systemctl enable --now mijnapp om de dienst te starten en automatisch te laten opstarten.
Beheer je meerdere eigen diensten op een VPS, dan loont het om een duidelijk herstartbeleid (Restart=on-failure) in te stellen, zodat de dienst zichzelf herstelt bij een crash. Twijfel je over de juiste instellingen voor jouw webhosting-omgeving, raadpleeg dan de kennisbank voor meer achtergrondinformatie.
Veelgestelde vragen
Hoe weet ik welke services er draaien?
Gebruik systemctl list-units --type=service --state=running om alle actief draaiende services te zien.
Wat is het verschil tussen restart en reload?
Restart stopt en start de dienst volledig opnieuw, waardoor actieve verbindingen worden verbroken. Reload herlaadt alleen de configuratie zonder de dienst te stoppen, wat beter is voor minimale downtime.
Waarom start mijn service niet automatisch na een reboot?
Controleer of de dienst is ingeschakeld met systemctl is-enabled [naam]. Staat deze op disabled, schakel hem dan in met systemctl enable [naam].
Kan ik systemd services ook beheren zonder terminaltoegang?
Ja, op een server met Plesk kun je veel services beheren via de grafische interface, zonder zelf commando’s te hoeven uitvoeren.
Is het veilig om zelf services te herstarten op mijn server?
Over het algemeen wel, zolang je weet welke dienst je herstart en wat de impact is. Bij twijfel kun je altijd contact opnemen met de support van je hostingpartij.
Conclusie
Met systemd en het commando systemctl beheer je eenvoudig alle diensten op je Linux-server: starten, stoppen, herstarten en automatisch laten opstarten. Combineer dit met journalctl voor logs en je kunt zelf veel storingen snel opsporen en oplossen. Loop je toch vast, dan staat onze support dag en nacht klaar om mee te kijken.