Aller au contenu

needrestart

À quoi il sert

Mettre à jour une bibliothèque ne change rien pour les processus déjà lancés : ils gardent en mémoire l'ancienne version, faille comprise. needrestart s'exécute après chaque opération APT (crochet DPkg::Post-Invoke) et à la demande. Il parcourt /proc/<pid>/maps à la recherche de fichiers projetés supprimés ou remplacés, remonte au service systemd qui contient chaque processus, puis, selon son mode, liste (-r l), propose (-r i) ou redémarre (-r a) ces services. Il compare aussi le noyau en cours au plus récent installé (-k). Son mode batch (-b) produit une sortie lisible par un programme, dont la ligne NEEDRESTART-KSTA (3 : nouveau noyau en attente) ; -o donne le même contenu au format OpenMetrics.

Quand le choisir

Sur tout serveur Debian ou Ubuntu qui reçoit des mises à jour automatiques. Ubuntu Server l'installe par défaut ; Debian 13 ne l'installe pas, et il mérite d'y être ajouté au moins pour la détection. Il ne remplace pas une politique de redémarrage : le noyau, lui, exige un redémarrage de la machine, que l'on coordonne derrière le répartiteur de charge, ou que l'on retarde avec Livepatch ou kpatch.

Points d'attention

  • Sur Ubuntu 24.04, un correctif propre à Ubuntu fait redémarrer automatiquement les services concernés, y compris pendant les mises à jour automatiques de la nuit, sur toutes les machines qui reçoivent le même paquet. La table $nrconf{override_rc} exclut déjà D-Bus, les getty, les services réseau et docker.
  • Pour exclure votre application sans perdre ce comportement pour le reste, ajoutez dans /etc/needrestart/conf.d/ une entrée $nrconf{override_rc}{qr(^signalements\.service$)} = 0;, et ne fixez pas $nrconf{restart}, qui désactiverait le mode Ubuntu pour tous les services.
  • Sur Debian 13 (version 3.11), le mode par défaut est interactif et se replie en liste seule sans terminal, donc sous unattended-upgrades : rien n'est redémarré.
  • Sur Debian, ne comptez pas sur /var/run/reboot-required pour savoir qu'un noyau attend : needrestart -b et sa ligne NEEDRESTART-KSTA fonctionnent partout et alimentent la supervision.

Par où commencer

La leçon Mettre à jour le noyau et la distribution du cours Linux : administration système, qui lit le diagnostic de needrestart, règle son comportement sur Ubuntu 24.04 et Debian 13 et coordonne les redémarrages des serveurs de Signalements. Puis la page de manuel needrestart(1) et le fichier README.batch.md du dépôt du projet.