TP on crée un Daemon ou service
systemd et les daemons
« C’est un démon » décrit la nature technique du processus (un programme en arrière-plan).
« C’est un service » décrit la façon dont il est géré (comme une unité par systemd).
1.1 C’est quoi systemd ?
systemd = le « chef d’orchestre » de Linux
- C’est le premier programme qui démarre quand Linux s’allume (PID 1)
- Il lance tous les autres programmes et services
Daemon = un programme qui tourne en arrière-plan
- Exemples : sshd (service SSH), apache2 (serveur web), mysql (base de données)
- Comme un « service Windows »
1.2 Les commandes systemctl de base
bruno@debian13:~$ systemctl status ssh
● ssh.service - OpenBSD Secure Shell server
Loaded: loaded (/usr/lib/systemd/system/ssh.service; enabled; preset: enabled)
Active: active (running) since Sun 2025-10-05 16:53:30 CEST; 4 weeks 2 days ago
Invocation: 7aa19ad276de4c048901b77b5d9be420
Docs: man:sshd(8)
man:sshd_config(5)
Process: 1661 ExecStartPre=/usr/sbin/sshd -t (code=exited, status=0/SUCCESS)
Main PID: 1701 (sshd)
Tasks: 1 (limit: 34670)
Memory: 9.6M (peak: 28M)
CPU: 137ms
CGroup: /system.slice/ssh.service
└─1701 "sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups"
oct. 05 16:53:30 debian13 systemd[1]: Starting ssh.service - OpenBSD Secure Shell server...
oct. 05 16:53:30 debian13 sshd[1701]: Server listening on 0.0.0.0 port 22.
oct. 05 16:53:30 debian13 sshd[1701]: Server listening on :: port 22.
oct. 05 16:53:30 debian13 systemd[1]: Started ssh.service - OpenBSD Secure Shell server.
oct. 07 09:47:42 debian13 sshd-session[74881]: Accepted password for bruno from 192.168.1.2 port 36508 ssh2
oct. 07 09:47:42 debian13 sshd-session[74881]: pam_unix(sshd:session): session opened for user bruno(uid=1000) by bruno(uid=0)
oct. 13 11:44:55 debian13 sshd-session[331783]: Accepted password for bruno from 192.168.1.2 port 41310 ssh2
oct. 13 11:44:55 debian13 sshd-session[331783]: pam_unix(sshd:session): session opened for user bruno(uid=1000) by bruno(uid=0)
Les états importants :
active (running)= ça marche ✓inactive (dead)= arrêté ✗failed= planté 💥
1.3 Démarrer/arrêter un service
# Démarrer un service
sudo systemctl start ssh
# Arrêter un service
sudo systemctl stop ssh
# Redémarrer (stop + start)
sudo systemctl restart ssh
# Recharger juste la configuration
sudo systemctl reload ssh
1.4 Démarrage automatique
# Activer le démarrage auto au boot
sudo systemctl enable ssh
# Désactiver le démarrage auto
sudo systemctl disable ssh
# Voir si c'est activé
systemctl is-enabled ssh
1.5 Voir tous les services
# Lister tous les services
systemctl list-units --type=service
# Voir seulement les services actifs
systemctl list-units --type=service --state=active
# Voir les services échoués
systemctl --failed
Les daemons en pratique
2.1 Exemples de daemons courants
# Service SSH (connexion à distance)
systemctl status ssh
# Service réseau
systemctl status systemd-networkd
# Service d'impression
systemctl status cups
# Service horloge
systemctl status systemd-timesyncd
2.2 Les logs des daemons
# Voir les logs d'un service
sudo journalctl -u ssh
# Voir les logs en temps réel
sudo journalctl -u ssh -f
# Voir les logs depuis hier
sudo journalctl -u ssh --since=yesterday
2.3 Exercice pratique : gérer le service SSH
# 1. Vérifier le statut
systemctl status ssh
# 2. Si il est arrêté, le démarrer
sudo systemctl start ssh
# 3. Vérifier qu'il est bien actif
systemctl status ssh
# 4. Activer le démarrage automatique
sudo systemctl enable ssh
# 5. Voir les logs
sudo journalctl -u ssh

