Ga naar inhoud

Services beheren in systemd

In dit artikel

systemd is het standaard init-systeem en servicemanager in de meeste moderne Linux-distributies:

  • Ubuntu 16.04+ (sterk aanbevolen Ubuntu 20.04/22.04/24.04)
  • Debian 8+ (Debian 11/12 – huidige LTS-releases)
  • RHEL/CentOS 7+ (RHEL 9 / AlmaLinux/Rocky Linux 9 – moderne CentOS-vervangers)
  • Fedora, openSUSE, Arch en anderen

Na het opstarten van de kernel wordt de controle overgedragen aan systemd (PID 1), die verantwoordelijk is voor:

  • het starten en stoppen van services,
  • het mounten van bestandssystemen,
  • het configureren van het netwerk en de omgeving,
  • het beheren van afhankelijkheden tussen componenten.

De primaire interface voor interactie met systemd is het hulpprogramma systemctl.

Basis syntaxis

systemctl [opties] opdracht [service]

Opmerking

In de meeste gevallen vereist het gebruik van systemctl supergebruikersrechten—gebruik sudo.

Service-status weergeven

Taak Opdracht
Lijst van actieve eenheden (services, sockets, timers, etc.) systemctl list-units
Alleen draaiende services systemctl list-units --type=service
Alle services (inclusief gestopte en inactieve) systemctl list-units --type=service --all
Lijst van draaiende services systemctl list-units --type=service --state=running
Zoeken naar een specifieke service (bijv. nginx) systemctl list-units '*nginx*'
Gedetailleerde informatie over een service systemctl status nginx (met logs, PID, afhankelijkheden)

Opmerking

Voeg --no-pager toe om te voorkomen dat de uitvoer wordt gepagineerd (bijv. systemctl status nginx --no-pager).

Servicebediening beheren

We gebruiken nginx als voorbeeld, maar de opdrachten zijn van toepassing op elke service: sshd, postgresql, clamav-daemon, docker, etc.

Actie Opdracht Opmerking
Status controleren sudo systemctl status nginx Toont of het draait, de PID, recente logs en fouten
Starten sudo systemctl start nginx Start de service tot de volgende herstart
Stoppen sudo systemctl stop nginx
Herstarten sudo systemctl restart nginx Volledig stoppen > starten (als het niet draait, wordt het gestart)
Configuratie herladen zonder te stoppen sudo systemctl reload nginx Werkt als de service SIGHUP ondersteunt (nginx, Apache, Postfix, etc.)
Herladen of herstarten sudo systemctl reload-or-restart nginx Valt terug op restart als reload niet wordt ondersteund
Probeer herstart (alleen als het draait) sudo systemctl try-restart nginx Veilig voor scripts
Controleren of service actief is systemctl is-active nginx Uitvoer: active / inactive / unknown
Controleren of service is mislukt systemctl is-failed nginx Uitvoer: failed als de service met een fout is afgesloten

Opmerking

Na start/restart zal de service niet automatisch starten bij het opstarten—autostart vereist aparte configuratie.

Autostart beheren

Actie Opdracht Wat gebeurt er
Autostart inschakelen sudo systemctl enable nginx Maakt een symlink van /usr/lib/systemd/system/nginx.service naar /etc/systemd/system/multi-user.target.wants/
Autostart uitschakelen sudo systemctl disable nginx Verwijdert de symlink maar stopt het draaiende proces niet
Autostart-status controleren systemctl is-enabled nginx Mogelijke waarden: enabled, disabled, static, masked
Instellingen resetten > opnieuw inschakelen sudo systemctl reenable nginx Wist vorige overschrijvingen en schakelt de service opnieuw in
Resetten naar standaard sudo systemctl preset nginx Herstelt alle aangepaste instellingen naar de distributiestandaard (zelden gebruikt)

Geavanceerde functies

1. Configuratieherlading van systemd forceren

Als u een .service-bestand hebt bewerkt:

sudo systemctl daemon-reload
sudo systemctl restart nginx

2. Afhankelijkheden weergeven

systemctl list-dependencies nginx

3. Servicejournaal (via journalctl)

journalctl -u nginx

4. Een service maskeren (volledig uitschakelen, zelfs handmatig)

sudo systemctl mask nginx
sudo systemctl unmask nginx

Nuttige opdrachten voor dagelijks gebruik

# Controleer snel of de service is ingeschakeld en draait
systemctl is-active --quiet nginx && echo "OK" || echo "STOPPED"


# Start en schakel autostart in met één opdracht
sudo systemctl start nginx && sudo systemctl enable nginx


# Schakel uit en stop de service
sudo systemctl stop nginx && sudo systemctl disable nginx

Opmerking

De --now-vlag (beschikbaar sinds systemd v220+, 2015) voert enable + start of disable + stop gelijktijdig uit.

question_mark
Is there anything I can help you with?
question_mark
AI Assistant ×