295 votes

Comment puis-je savoir, à partir de la ligne de commande, si la machine nécessite un redémarrage ?

Lorsque vous installez certaines mises à jour (par exemple, un nouveau noyau) dans Ubuntu Desktop, vous obtenez une indication qu'un redémarrage est nécessaire (dans Lucid, l'icône de déconnexion devient rouge).

Comment puis-je vérifier, à partir de la ligne de commande, si un système Ubuntu serveur nécessite un redémarrage ?

J'ai pu rechercher 'System restart required' (redémarrage du système requis) dans /etc/motd mais j'aimerais une solution plus élégante. De plus, je veux une solution qui fonctionne dans les anciennes versions, par exemple Hardy (8.04 LTS).

335voto

Matt Points 2336

Vous pouvez simplement vérifier si le fichier /var/run/reboot-required existe ou non.

Par exemple, l'une de ces commandes vous dira "no such file" ou "file not found" si vous n'avez pas besoin de redémarrer, sinon (si vous avez besoin de redémarrer) le fichier existera et ces commandes afficheront des informations sur le fichier :

file /var/run/reboot-required
stat /var/run/reboot-required
ls /var/run/reboot-required

Dans un script bash, vous pouvez utiliser :

#!/bin/bash
if [ -f /var/run/reboot-required ]; then
  echo 'reboot required'
fi

51voto

aquaherd Points 5970

Dans le paquet debian-goodies se trouve une commande nommée checkrestart ce qui est très utile. Son résultat peut vous aider à éviter un redémarrage complet.

Il vous indique quelles applications en cours d'exécution ont chargé des bibliothèques partagées qui ont été mises à niveau pendant l'exécution de l'application. Vous pouvez alors redémarrer les applications et les services manuellement et éviter un redémarrage complet. Il n'est pas utile pour les mises à jour du noyau, cependant.

34voto

hyperboreean Points 294

Normalement, si le fichier

/var/run/reboot-required 

existe, vous devez redémarrer. Vous pouvez voir si ce fichier existe en utilisant cette simple commande dans gnome-terminal.

ls /var/run/reboot-required

18voto

ESV Points 4591

En plus des méthodes les plus directes écrites par d'autres personnes, il y a une indication pratique si vous utilisez byobu - un ensemble de scripts pour rendre GNU screen un peu plus convivial. Il affiche un ensemble d'informations en bas de l'écran, et cela peut inclure si un redémarrage est nécessaire - ainsi que si des mises à jour sont disponibles, l'heure, le temps de fonctionnement, la mémoire utilisée....

Dans cette capture d'écran, vous pouvez voir de la 199! sur la ligne du bas avec le fond rouge qu'il y a 199 mises à jour disponibles. A !! signifie que certains sont des mises à jour de sécurité . Le menu au premier plan permet de sélectionner les notifications d'état à afficher.

Si un redémarrage est nécessaire, cela sera indiqué par le symbole (R) affiché dans la barre inférieure avec un texte blanc sur fond bleu. Plus de détails et d'autres indicateurs peuvent être consultés sur le site Web de la Commission européenne. page de manuel de byobu .

screenshot

11voto

Tim Bray Points 229

Si les paquets reboot-notifier ou update-notifier-common sont installés, vous obtenez les fichiers /var/run/reboot-required et /var/run/reboot-required.pkgs.

reboot-notifier est plus récent dans Ubuntu Wily et Xenial. Debian stretch, mais dans jessie-backports

update-notifier-common Est plus ancien, dans toutes les versions d'Ubuntu, y compris Xenial et Debian Wheezy. Pas dans Debian Stretch ou Jessie.

( Il y a des informations sur le paquet reboot-notifier à l'adresse suivante https://feeding.cloud.geek.nz/posts/introducing-reboot-notifier/ )

Si vous n'avez pas ces paquets installés, vous pouvez comparer la version du paquet linux installé, avec la version en cours d'exécution :

tim@tramp:~$ dpkg -l linux-image-*
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name                              Version               Architecture          Description
+++-=================================-=====================-=====================-=======================================================================
ii  linux-image-3.16.0-4-amd64        3.16.7-ckt20-1+deb8u4 amd64                 Linux 3.16 for 64-bit PCs
ii  linux-image-amd64                 3.16+63               amd64                 Linux for 64-bit PCs (meta-package)
tim@tramp:~$ more /proc/version
Linux version 3.16.0-4-amd64 (debian-kernel@lists.debian.org) (gcc version 4.8.4 (Debian 4.8.4-1) ) #1 SMP Debian <b>3.16.7-ckt20-1+deb8u3</b> (2016-01-17)

Vous pouvez voir ici que le dernier noyau installé est 3.16.7-ckt20-1+deb8u4 mais que le noyau en cours d'exécution est 3.16.7-ckt20-1+deb8u3. Ce système a donc besoin d'un redémarrage. Le u4 vs u3 juste à la fin.

Vous devrez peut-être faire défiler la boîte ci-dessus. Dans le /proc/version, c'est la version vers la fin de la ligne qui compte.

Le changement très mineur du code de la version est typique d'une mise à jour du noyau de sécurité de Debian.

besoin de redémarrer

Une autre option consiste à installer le needrestart paquet.

sudo apt-get install needrestart
sudo needrestart -k

Il semble que cela fonctionne même si needrestart a été installé après la mise à jour du noyau.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X