Accueil

Needrestart : Gérer les redémarrages de services

System
Difficulte: Beginner
3 min de lecture

Tutoriel pour installer et configurer needrestart afin de vérifier et redémarrer les services après les mises à jour sur un système Linux.

Retour aux tutoriels

L'essentiel

  • Une mise à jour de bibliothèque (OpenSSL, glibc) remplace le fichier sur le disque, mais les processus déjà lancés continuent de tourner avec l'ancienne version chargée en mémoire : le correctif de sécurité n'est pas réellement appliqué tant que les services concernés n'ont pas redémarré.
  • needrestart identifie précisément les services dans ce cas et s'intègre à apt : il se déclenche seul après chaque apt upgrade sur Debian/Ubuntu, et se lance à la demande avec sudo needrestart.
  • Le comportement se règle avec $nrconf{restart} dans /etc/needrestart/needrestart.conf : 'i' interactif (défaut, demande confirmation), 'l' liste seulement, 'a' redémarre automatiquement. En production, restez en i ou l pour éviter toute coupure non planifiée.
  • Un service sensible s'exclut définitivement avec une ligne du type $nrconf{override_rc}{postgresql} = 0; : needrestart continuera de le signaler mais ne le redémarrera jamais.
  • Pour le noyau, needrestart se contente d'avertir : il ne peut pas le recharger, seul un redémarrage complet de la machine active un nouveau kernel. Et s'il ne demande rien après une mise à jour, c'est simplement qu'aucun service actif n'est affecté.
Qu'est-ce que needrestart ?
Après une mise à jour de bibliothèque (comme OpenSSL ou glibc), les services qui l'utilisent continuent de tourner avec l'ancienne version en mémoire. needrestart est un outil qui détecte intelligemment ces services et vous demande s'ils doivent être redémarrés pour appliquer les correctifs de sécurité ou de stabilité.

Pourquoi utiliser needrestart ?

  • Sécurité : Assure que les correctifs de sécurité des bibliothèques sont réellement appliqués aux services en cours d'exécution.
  • Stabilité : Évite les incohérences entre les nouvelles bibliothèques sur le disque et les anciennes en mémoire.
  • Praticité : S'intègre parfaitement avec apt sur Debian/Ubuntu pour vérifier les services après chaque mise à jour.
  • Contrôle : Vous laisse le choix de redémarrer, d'ignorer ou de redémarrer automatiquement les services.

Prérequis

  • Un système Linux basé sur Debian (Debian, Ubuntu, Mint...).
  • Accès root ou privilèges sudo.

Installation

needrestart se trouve dans les dépôts par défaut de Debian et Ubuntu.

sudo apt-get update
sudo apt-get install -y needrestart

Lors de l'installation, il vous sera probablement demandé de choisir un mode de redémarrage par défaut. Le mode "interactive" (-i) est le plus sûr pour commencer : il vous demandera confirmation pour chaque redémarrage.

Utilisation

L'utilisation principale de needrestart est automatique. Après une commande apt upgrade, il se lancera de lui-même.

Vous pouvez aussi le lancer manuellement à tout moment pour vérifier l'état de votre système :

sudo needrestart

Exemple de sortie


Scanning processes...
Scanning candidates...
Scanning linux images...

Running kernel seems to be up-to-date.

Restarting services...
 Service "cron" is using old libraries and needs to be restarted.
  Restarting cron...
  systemctl restart cron.service
...

Si vous êtes en mode interactif, il vous présentera une liste des services à redémarrer et vous demandera de choisir lesquels redémarrer.

Pas de nouvelles, bonnes nouvelles
Si needrestart ne vous demande rien après une mise à jour, c'est qu'aucun service en cours d'exécution n'est affecté.

Configuration

Le fichier de configuration principal est /etc/needrestart/needrestart.conf. Vous pouvez y ajuster le comportement de l'outil.

sudo nano /etc/needrestart/needrestart.conf

Mode de redémarrage

La ligne la plus importante est $nrconf{restart}.

# 'i' - Interactive: demande confirmation avant chaque redémarrage (défaut).
# 'l' - List: ne fait que lister les services, sans redémarrer.
# 'a' - Automatic: redémarre automatiquement les services sans demander (Attention !).
$nrconf{restart} = 'i';

Pour un serveur en production, le mode interactif (i) ou le mode liste (l) sont recommandés pour éviter les interruptions de service non planifiées.

Ignorer certains services

Si vous avez un service sensible que vous ne voulez jamais que needrestart redémarre, vous pouvez l'ajouter à la liste d'ignorés.

# Exemple pour ignorer le serveur de base de données PostgreSQL
$nrconf{override_rc}{postgresql} = 0;
Redémarrage du Noyau (Kernel)
needrestart vous avertira également si une mise à jour du noyau a été installée, indiquant qu'un redémarrage complet du système est nécessaire pour l'activer. Contrairement aux services, il ne peut pas redémarrer le noyau lui-même.

Conclusion

needrestart est un outil simple mais essentiel pour la maintenance et la sécurité des systèmes Debian-like. Il comble une lacune importante dans le processus de mise à jour en s'assurant que les correctifs sont bien appliqués non seulement sur le disque, mais aussi pour les services activement en cours d'exécution. Son utilisation est une bonne pratique fortement recommandée pour tout administrateur système.

MR

Écrit par

Morgann Riu

Expert en cybersécurité et administration Linux. Je partage mes connaissances à travers des tutoriels gratuits et des formations pour aider les administrateurs systèmes et développeurs à sécuriser leurs infrastructures.

Questions fréquentes

Pourquoi mon apt upgrade s'arrête sur un écran listant des services à redémarrer ?
C'est needrestart en mode interactif, son comportement par défaut. Il a détecté des services qui utilisent encore d'anciennes bibliothèques et attend votre validation avant de les relancer. Confirmez la sélection et apt reprendra. Pour des mises à jour non surveillées (Ansible, cron), passez $nrconf{restart} à 'l' pour un simple listing, ou à 'a' pour un redémarrage automatique.
Quelle différence entre les modes i, l et a ?
Le mode 'i' (interactive) affiche la liste des services concernés et demande confirmation pour chacun : c'est le plus sûr et le réglage par défaut. Le mode 'l' (list) se contente d'énumérer les services sans jamais rien redémarrer, idéal pour auditer avant d'agir. Le mode 'a' (automatic) relance tout sans poser de question : pratique sur des machines jetables, dangereux sur un serveur de production où un redémarrage imprévu coupe le service.
needrestart ne me demande rien après une mise à jour, est-ce anormal ?
Non, c'est une bonne nouvelle. Le silence signifie qu'aucun processus en cours d'exécution n'utilise une bibliothèque qui vient d'être remplacée, donc qu'aucun redémarrage n'est nécessaire. Vous pouvez le confirmer à tout moment en lançant sudo needrestart manuellement : il rescanne les processus et les images noyau.
Comment empêcher needrestart de redémarrer une base de données en pleine production ?
Ajoutez une exclusion dans /etc/needrestart/needrestart.conf, par exemple $nrconf{override_rc}{postgresql} = 0;. Le service reste signalé dans le rapport mais needrestart ne le relancera jamais, ni en mode interactif ni en mode automatique. Vous planifiez alors le redémarrage vous-même pendant une fenêtre de maintenance.
needrestart annonce qu'un redémarrage du noyau est nécessaire, pourquoi ne le fait-il pas ?
Parce que c'est techniquement impossible : contrairement à un service, un noyau ne se relance pas à chaud. needrestart compare le noyau en cours d'exécution avec celui installé sur le disque et vous avertit de l'écart, mais seul un reboot complet de la machine chargera la nouvelle version. Tant que la machine n'a pas redémarré, les correctifs kernel ne sont pas actifs.

Partager ce tutoriel

Cet article vous a plu ?

Cet article vous a-t-il été utile ?

Merci pour votre retour !

Commentaires

Recommandé pour vous

Article de fond sur le sujet

Checklist Sécurité Linux

30 points essentiels pour sécuriser un serveur Linux. Recevez aussi les nouveaux tutoriels par email.

Pas de spam. Désabonnement en 1 clic.