Passer au contenu principal

Bases (Linux)

Processus et services

Tout programme en cours d'exécution est un processus. Chaque processus a un identifiant unique (PID) et s'exécute sous l'identité d'un utilisateur. Les services (ou daemons) sont des processus qui tournent en arrière-plan.

Observer les processus

  • ps aux : liste tous les processus en cours avec leur PID, utilisateur et consommation de ressources
  • ps -ef : affichage alternatif avec la hiérarchie parent/enfant (PPID)
  • top : vue dynamique des processus triés par consommation CPU
  • htop : version améliorée de top (à installer : apt install htop) — navigation interactive, filtres, kill intégré
  • pgrep nom : retrouve le PID d'un processus par son nom

Gérer les processus

  • kill PID : envoie le signal SIGTERM (arrêt propre, le processus peut l'ignorer)
  • kill -9 PID : envoie le signal SIGKILL (arrêt forcé, immédiat)
  • killall nom : tue tous les processus portant ce nom

Toujours commencer par kill avant kill -9 : le SIGTERM laisse au processus le temps de fermer proprement ses connexions et fichiers.

Gérer les services avec systemctl

Sur Debian, les services sont gérés par systemd via la commande systemctl :

  • systemctl status nginx : état d'un service
  • systemctl start nginx : démarrer
  • systemctl stop nginx : arrêter
  • systemctl restart nginx : redémarrer
  • systemctl reload nginx : recharger la configuration sans couper le service
  • systemctl enable nginx : activer le démarrage automatique au boot
  • systemctl disable nginx : désactiver le démarrage automatique
  • systemctl list-units --type=service : liste tous les services actifs

Consulter les logs avec journalctl

  • journalctl -u nginx : logs du service nginx
  • journalctl -u nginx -f : suit les logs en temps réel
  • journalctl --since "1 hour ago" : logs de la dernière heure
  • journalctl -p err : filtre sur les erreurs uniquement

En pratique : systemctl status service est le premier réflexe lors d'un dysfonctionnement. Il affiche l'état du service, les dernières lignes de log et le code de sortie. journalctl -u service -f en parallèle lors d'un redémarrage permet de voir exactement où ça coince.