6.4 Diensten
Hier bouw je op verder: Installeren met sudo apt en Een website in WSL bekijken
Weet je dit niet meer zeker? Lees het terug voordat je verdergaat.
De webserver uit 5.2 stopte zodra je Ctrl+C drukte of de terminal Het venster waarin je commando's typt en de antwoorden van de computer leest.Uitgelegd in Linux: zo werkt deze cursusAlle begrippen sloot. Een echte server Een computer of programma dat iets aanbiedt aan andere computers, zoals een website; een servercomputer staat meestal zonder scherm in een datacenter.Uitgelegd in 7.2 Inloggen op een andere computerAlle begrippen moet blijven draaien, ook als niemand is ingelogd, en vanzelf weer starten na een herstart. Zo'n programma heet een dienst. Op Ubuntu De Linux die je in deze cursus gebruikt, en die je op de meeste servers tegenkomt.Uitgelegd in 5.1 WSL installerenAlle begrippen regelt systemd de diensten, en je praat ermee via systemctl.
Installeer een echte webserver, nginx:
sudo apt update
sudo apt install nginx
Open in je browser http://localhost. Je ziet de kop Welcome to nginx!, zonder dat je iets hebt gestart: apt zette de dienst meteen aan.
Kijken hoe het gaat
systemctl status nginx
● nginx.service - A high performance web server and a reverse proxy server
Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; preset: enabled)
Active: active (running) since Mon 2026-11-02 10:15:01 CET; 2min ago
Twee woorden doen ertoe. active (running) betekent: hij draait nu. enabled betekent: hij start vanzelf als de computer opstart. Komt je prompt De regel voor de cursor, zoals student@oefenpc:~$: wie je bent, op welke computer, en in welke map je staat.Uitgelegd in 1.1 Je eerste commando'sAlle begrippen niet vanzelf terug, druk dan op q.
Starten en stoppen
| Commando | Wat het doet |
|---|---|
sudo systemctl stop nginx | stoppen |
sudo systemctl start nginx | starten |
sudo systemctl restart nginx | opnieuw starten, bijvoorbeeld na een nieuwe instelling |
sudo systemctl enable nginx | vanzelf starten bij het opstarten |
sudo systemctl disable nginx | niet meer vanzelf starten |
Kijken mag iedereen, dus status werkt zonder sudo. Een dienst veranderen vraagt sudo.
Voorspel
Je doet sudo systemctl stop nginx en herlaadt http://localhost in je browser. Wat zie je? En na sudo systemctl start nginx?
Klik hier als je het hebt geprobeerd
Na stop geeft de browser een foutmelding, zoiets als Kan deze pagina niet bereiken: er luistert niemand meer. Na start is de welkomstpagina terug.
Wat er gebeurde: het logboek
Elke dienst schrijft wat hij doet naar een logboek. Dat lees je met journalctl:
sudo journalctl -u nginx -n 20
-u nginx kiest de dienst (unit), -n 20 de laatste twintig regels. Start een dienst niet, dan staat hier waarom. Met -f (follow) blijft het logboek openstaan en zie je nieuwe regels meteen verschijnen; stoppen doe je met Ctrl+C.
Opdracht 6.4.a: nginx uit
Je hebt nginx straks niet meer nodig, en hij houdt de deur van http://localhost bezet.
- Stop nginx, en zorg dat hij niet meer vanzelf start.
- Laat met
systemctl statuszien dat het gelukt is.
Klik hier voor een tip
Je hebt twee commando Een opdracht die je in de terminal typt, zoals whoami of ls; na Enter voert de computer hem uit.Uitgelegd in 1.1 Je eerste commando'sAlle begrippen uit de tabel nodig. Ze kunnen ook in één keer: disable kent de optie Een stukje achter een commando dat met een streepje begint, zoals -a in ls -a; het verandert wat het commando doet.Uitgelegd in 1.1 Je eerste commando'sAlle begrippen --now.
Klik hier voor het antwoord
sudo systemctl disable --now nginx
systemctl status nginx
In de status staan nu disabled en inactive (dead). Helemaal weghalen kan met sudo apt remove nginx.
Er gaat iets mis
Niet opgestart met systemd
System has not been booted with systemd as init system (PID 1). Can't operate.
Failed to connect to bus: Host is down
Oorzaak: in je WSL Windows Subsystem for Linux: een echte Linux die op je Windows-computer draait, naast je gewone programma's.Uitgelegd in 5.1 WSL installerenAlle begrippen staat systemd uit. Bij een nieuwe Ubuntu staat het aan, maar bij een oudere installatie niet.
Oplossing: zet het aan in /etc/wsl.conf:
sudo nano /etc/wsl.conf
Zet erbij, onder wat er al staat (haal niets weg, want een regel als default=sam bepaalt met wie je inlogt):
[boot]
systemd=true
Sla op, stop, en typ in PowerShell wsl --shutdown. Open daarna Ubuntu opnieuw.
nginx start niet: address already in use
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
Deze regel staat in sudo journalctl -u nginx -n 20, en systemctl status nginx zegt failed.
Oorzaak: een ander programma luistert al op poort Een nummer waarop een programma op een computer luistert, zoals 8000 in localhost:8000.Alle begrippen 80. Alle Linux-versies in WSL delen één netwerk, dus het kan ook een webserver in een andere Linux zijn.
Oplossing: zoek uit welk programma op :80 staat, en zet dat uit. Dat vertelt sudo ss -tlnp: ss laat de verbindingen van de computer zien, en met -tlnp alleen de poorten waarop een programma wacht, met de naam van dat programma erbij.
De dienst draait niet meer als je later terugkomt
Oorzaak: WSL zet Linux stil als er een tijdje geen Ubuntu-venster open is. Je diensten stoppen dan mee.
Oplossing: open Ubuntu; diensten met enabled starten dan vanzelf weer. Op een echte server speelt dit niet: die staat altijd aan.
Door naar 6.5 Groepen.