Chapitre 8.1 - Introduction à systemd
Objectifs d'Apprentissage
À la fin de ce chapitre, vous serez capable de:
- Comprendre ce qu'est systemd
- Utiliser systemctl pour gérer les services
- Comprendre les unités systemd
- Voir l'état des services
- Démarrer, arrêter, redémarrer des services
Qu'est-ce que systemd?
systemd est le système d'initialisation et de gestion des services sur la plupart des distributions Linux modernes.
Fonctions:
- Gestion des services
- Démarrage système
- Gestion des logs (journald)
- Planification (timers)
- Montage de systèmes de fichiers
Unités systemd
Types d'Unités
# Voir types
systemctl list-units --type=service
systemctl list-units --type=timer
systemctl list-units --type=mount
systemctl list-units --type=socket
Types courants:
- .service: Services
- .timer: Tâches planifiées
- .mount: Points de montage
- .socket: Sockets réseau
- .target: Groupes d'unités
systemctl - Commandes de Base
Voir l'État
# Tous les services
systemctl list-units --type=service
# Services actifs
systemctl list-units --type=service --state=running
# Services inactifs
systemctl list-units --type=service --state=inactive
# Services échoués
systemctl list-units --type=service --state=failed
# État d'un service
systemctl status sshd
systemctl status apache2
Démarrer/Arrêter
# Démarrer
sudo systemctl start service_name
# Arrêter
sudo systemctl stop service_name
# Redémarrer
sudo systemctl restart service_name
# Recharger configuration
sudo systemctl reload service_name
# Recharger ou redémarrer
sudo systemctl reload-or-restart service_name
Activer/Désactiver au Démarrage
# Activer (démarrage automatique)
sudo systemctl enable service_name
# Désactiver
sudo systemctl disable service_name
# Activer et démarrer
sudo systemctl enable --now service_name
# Vérifier si activé
systemctl is-enabled service_name
États des Services
États Possibles
États:
- active (running): En cours d'exécution
- active (exited): Terminé avec succès
- inactive: Arrêté
- failed: Échec
- activating: En cours de démarrage
Voir Détails
# État détaillé
systemctl status service_name
# Informations complètes
systemctl show service_name
# Propriété spécifique
systemctl show -p ActiveState service_name
systemctl show -p LoadState service_name
Commandes Utiles
Lister les Services
# Tous les services
systemctl list-units --type=service --all
# Services activés
systemctl list-unit-files --type=service --state=enabled
# Services désactivés
systemctl list-unit-files --type=service --state=disabled
# Par état
systemctl list-units --type=service --state=running
systemctl list-units --type=service --state=failed
Masquer/Afficher
# Masquer service
sudo systemctl mask service_name
# Démasquer
sudo systemctl unmask service_name
Recharger systemd
# Recharger configuration (après modification fichiers)
sudo systemctl daemon-reload
Exemples Pratiques
Gestion SSH
# Voir état
systemctl status sshd
# Démarrer
sudo systemctl start sshd
# Activer au démarrage
sudo systemctl enable sshd
# Redémarrer
sudo systemctl restart sshd
Gestion Apache/Nginx
# Apache
sudo systemctl start apache2
sudo systemctl enable apache2
sudo systemctl status apache2
# Nginx
sudo systemctl start nginx
sudo systemctl enable nginx
sudo systemctl status nginx
Services Échoués
# Voir services échoués
systemctl list-units --state=failed
# Redémarrer service échoué
sudo systemctl restart failed_service
# Voir logs
sudo journalctl -u failed_service
Résumé
Dans ce chapitre, vous avez appris:
systemd: Système d'initialisation et gestion services
Unités: .service, .timer, .mount, .socket, .target
systemctl: Commandes pour gérer services
États: active, inactive, failed, activating
Commandes: start, stop, restart, enable, disable, status
Pratique: Gestion services courants (SSH, Apache, etc.)
Prochaines Étapes
Chapitre 8.2: Création de Services Personnalisés
Chapitre 8.3: Cron Avancé et systemd Timers
Chapitre créé le: Décembre 2024