Processus et services
Qu'est-ce qu'un processus ?
Un processus est un programme en cours d'exécution.
Quand tu lances nginx, python ou vim,
Linux crée un processus qui lui attribue un identifiant unique : le PID
(Process ID).
Chaque processus a un processus parent (PPID). Tout part du processus
systemd (PID 1) qui démarre au boot et gère tous les autres.
Surveiller les processus
# Liste des processus de l'utilisateur courant
ps
# Tous les processus du système, format détaillé
ps aux
# Chercher un processus par nom
ps aux | grep nginx
# Affichage interactif en temps réel
top
# Version améliorée de top (à installer : apt install htop)
htop
# Trouver le PID d'un processus par son nom
pgrep nginx
# Afficher les processus en arbre
pstree
ps aux | grep nginx est la commande la plus utilisée pour vérifier
si un service tourne. La colonne %CPU et %MEM
de top te montrent ce qui consomme le plus de ressources.
Tuer des processus — kill et killall
Pour arrêter un processus, on lui envoie un signal. Les deux plus importants :
- SIGTERM (15) — demande poliment au processus de s'arrêter (nettoyage possible)
- SIGKILL (9) — tue le processus immédiatement, sans pitié
# Tuer un processus par son PID (SIGTERM par défaut)
kill 1234
# Tuer un processus de force (SIGKILL)
kill -9 1234
# Tuer tous les processus avec ce nom
killall nginx
# Tuer par nom (comme pgrep + kill)
pkill nginx
Utilise kill -9 en dernier recours seulement. Le processus n'a pas le temps
de sauvegarder ses données ou de libérer ses ressources. Commence toujours par un
kill simple (SIGTERM), et attends quelques secondes.
Services et systemctl
Un daemon (ou service) est un processus qui tourne en arrière-plan
en permanence : serveur web, base de données, SSH, etc. Sous Linux moderne,
ils sont gérés par systemd via la commande systemctl.
# Voir le statut d'un service
systemctl status nginx
# Démarrer un service
sudo systemctl start nginx
# Arrêter un service
sudo systemctl stop nginx
# Redémarrer un service
sudo systemctl restart nginx
# Recharger la configuration sans redémarrage
sudo systemctl reload nginx
# Activer au démarrage (survit au reboot)
sudo systemctl enable nginx
# Désactiver au démarrage
sudo systemctl disable nginx
# Lister tous les services actifs
systemctl list-units --type=service --state=running
systemctl enable et systemctl start sont deux choses différentes.
start lance le service maintenant. enable le configure pour
démarrer automatiquement au prochain boot. En production, tu veux souvent les deux :
sudo systemctl enable --now nginx.
- Chaque programme qui tourne est un processus avec un PID unique.
ps auxliste tous les processus.top/htoples affiche en temps réel.kill PIDarrête proprement.kill -9 PIDforce l'arrêt.- Un daemon est un service qui tourne en arrière-plan (nginx, ssh, mysql...).
systemctl start/stop/status/enable/disablegère les services sous systemd.