OS & Linux-track Les 7 van 8

⚙️ Processen, services en logs

Wat er op een server draait, hoe je het beheert en hoe je problemen opspoort in de logs.

⏱ 20 min5 stappen Les 4 aanbevolen
Stap 1 / 5

ps en top — wat draait er?

Op een server draaien tientallen processen tegelijk. Twee commando's om ze te zien:

ps aux — snapshot van processen

Geeft een statische lijst van alle draaiende processen op dit moment.

USER PID %CPU %MEM COMMAND
root 1 0.0 0.1 /sbin/init
www 512 0.2 2.3 nginx: worker
mysql 891 0.5 8.1 /usr/sbin/mysqld
stud 1024 0.0 0.5 bash
PID — Process ID (uniek nummer)
%CPU — processorgebruik
%MEM — geheugengebruik
top — live procesmonitor

Verversend overzicht — live bijgehouden. q om af te sluiten.

top - 14:32:07 up 42 days
Tasks: 84 total, 1 running, 83 sleeping
%Cpu: 2.1 us, 0.5 sy, 0.0 ni, 97.2 id
MiB Mem: 1987.4 total, 341.2 free

htop is een populaire, kleurrijke versie: sudo apt install htop

Terminal
Probeer: ps aux, ps aux | grep nginx, ps aux | grep php
student@linux:~$
Stap 2 / 5

Processen stoppen

Ctrl+C
— stop het huidige commando

Het snelste: onderbreek het commando dat nu in je terminal draait. Werkt op 90% van de gevallen.

Ctrl+Z
— pauseer het commando

Zet het proces op de achtergrond. bg laat het op achtergrond doordraaien, fg brengt het terug.

kill — stop een proces op PID
kill 1234
Vriendelijk verzoek: "stop jezelf" (SIGTERM)
kill -9 1234
Harde kill: OS forceert het stopzetten (SIGKILL). Gebruikt als -15 niet werkt.
killall nginx
Stop alle processen met die naam (geen PID nodig)
💡 PID vinden voor kill
ps aux | grep vastgelopen-app
student 4521 99.9 0.1 vastgelopen-app
kill 4521
Stap 3 / 5

systemctl — services beheren

Een service is een programma dat continu op de achtergrond draait: nginx, MySQL, PHP-FPM. systemctl beheert ze allemaal.

sudo systemctl start nginx
Start de service
sudo systemctl stop nginx
Stop de service
sudo systemctl restart nginx
Herstart (stop + start)
sudo systemctl reload nginx
Herlaad config zonder onderbreking
systemctl status nginx
Toon status, PID en recente logs
sudo systemctl enable nginx
Start automatisch bij serverherstart
Terminal — probeer systemctl
Probeer: systemctl status nginx, sudo systemctl restart nginx, sudo systemctl start mysql
student@linux:~$
Stap 4 / 5

Logbestanden — waar en hoe lezen

Logbestanden vertellen je wat er mis ging. Ze staan allemaal in /var/log/.

Veelgebruikte logbestanden
/var/log/nginx/error.log Nginx-fouten: 404, 500, config-problemen
/var/log/nginx/access.log Elke HTTP-request die nginx verwerkt
/var/log/mysql/error.log MySQL-fouten: verbindingsproblemen, queries
/var/log/syslog Algemene systeemberichten
/var/log/auth.log SSH-logins en sudo-gebruik — voor beveiliging
var/log/ (Symfony) Symfony-specifieke logs in jouw project
tail -f /var/log/nginx/error.log
Live meekijken — elke nieuwe fout verschijnt direct. Ctrl+C om te stoppen.
grep "ERROR" /var/log/nginx/error.log
Filter op alleen ERROR-regels in een groot logbestand.
journalctl -u nginx --since "1 hour ago"
systemd-logs van de nginx-service van het laatste uur.
🎯 Debugflow bij problemen
  1. Wat is de fout? → browser of terminal
  2. systemctl status nginx — draait de service?
  3. tail -20 /var/log/nginx/error.log — wat zegt de log?
  4. Zoek de foutmelding online
  5. Fix → sudo systemctl restart nginx
Stap 5 / 5

Samenvatting & kennischeck

ps aux geeft snapshot van processen
kill PID stopt een proces vriendelijk, -9 forceert
systemctl start/stop/status service
enable zorgt voor automatisch starten bij herstart
Logs staan in /var/log/ — nginx, mysql, syslog
tail -f log laat live meekijken bij fouten