Vraag Hoe kan ik via de opdrachtregel zien of het apparaat opnieuw moet worden opgestart?


Wanneer u bepaalde updates installeert (bijvoorbeeld een nieuwe kernel) in Ubuntu Desktop, krijgt u een aanwijzing dat opnieuw opstarten vereist is (in Lucid wordt het uitlogpictogram rood).

Hoe kan ik vanaf de opdrachtregel controleren of een Ubuntu server vereist een herstart?

Ik zou kunnen grep voor 'Systeem opnieuw opstarten vereist' in /etc/motd, maar ik wil graag een oplossing die eleganter is. Ik wil ook een oplossing die werkt in oudere releases, bijvoorbeeld Winterhard (8,04 LTS).


219
2017-07-28 21:49


oorsprong


Als u de server onderhoudt, krijgt u binnenkort ook een idee of de update opnieuw moet worden gestart of niet. Voor de meeste updates is geen herstart nodig of alleen opnieuw opstarten van de service (dit zou automatisch moeten gebeuren). - eXlin


antwoorden:


U kunt eenvoudig controleren of het bestand /var/run/reboot-required bestaat of niet.

Bijvoorbeeld, elk van deze zou u vertellen "niet zo'n bestand" of "bestand niet gevonden" als u niet opnieuw hoeft op te starten, anders (als u opnieuw moet opstarten) zou het bestand bestaan ​​en deze commando's zouden informatie over het bestand tonen:

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

In een bash-script kunt u het volgende gebruiken:

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

257
2017-07-28 22:02



Dit werkt, en het werkt ook op Hardy. (Werkt niet op Dapper - 6.06 - die ik nog steeds op één machine heb. Moeilijk.) Overigens wordt het / var / run / reboot-vereiste bestand gemaakt door / usr / share / update-notifier / notify-reboot -vereist dat wordt aangeroepen vanuit de onderhoudsscripts van verschillende pakketten. - Marius Gedminas
Het zou ook werken op Dapper als ik het update-notifier-pakket installeerde, behalve dat het 120 meg's aan GNOME-spullen naar mijn oude server wil slepen. - Marius Gedminas
Beter installeren update-notifier-common, het is niet afhankelijk van GUI-dingen (maar bestaat niet voor Dapper). - Marius Gedminas
FWIW, update-notifier-common wordt standaard niet op de Lucid-server geïnstalleerd. - Marius Gedminas
Bedankt! en het bestand /var/run/reboot-required.pkgs zal een lijst maken van de pakketten die opnieuw moeten worden opgestart. - nealmcb


In het pakket is debian-goodies een commando genaamd checkrestart, wat best handig is. De uitvoer ervan kan u helpen een volledige herstart te voorkomen.


39
2017-09-09 14:51



Hoe kan ik ervoor zorgen dat ik niet volledig opnieuw opstart? - Oxwivi
Hierin wordt aangegeven welke actieve toepassingen gedeelde bibliotheken hebben geladen die zijn bijgewerkt terwijl de toepassing actief was. U herstart vervolgens de toepassingen en services handmatig en vermijdt een volledige herstart. Helpt echter niet met kernel-upgrades. - aquaherd
Dit zou het beste antwoord moeten zijn. Erg behulpzaam. OpenSUSE heeft een tool ingebouwd (en helpt je ook hoe je het kunt uitvoeren). Shame Ubuntu gaat gewoon "herstarten, herstarten". Colord had hier bijvoorbeeld een herstart nodig. Daarom is het niet nodig om opnieuw op te starten. - Shiki
@aquaherd Zeer nuttige opmerking - kan het waard zijn om dat in uw antwoord te plaatsen? - Duncan Jones


Normaal als het bestand

/var/run/reboot-required 

bestaat dat je moet rebooten. Je kunt zien of dit bestand er is door deze eenvoudige opdracht in gnome-terminal te gebruiken.

ls /var/run/reboot-required

32
2017-07-28 21:59



Dit bestand lijkt niet meer te zijn gemaakt via de update-notifier-gemeenschappelijk dat werd gebruikt om het te maken. - Scott


Naast de meest directe methoden die door anderen zijn geschreven, is er een handige indicatie als u deze gebruikt byobu - een set scripts om het GNU-scherm wat gebruiksvriendelijker te maken. Het toont een reeks informatie onderaan het scherm, en die kan bevatten of een reboot vereist is - samen met of updates beschikbaar zijn, de tijd, uptime, gebruikt geheugen ...

In deze schermafbeelding kunt u zien vanaf de 199! op de onderste regel met de rode achtergrond dat er 199 updates beschikbaar zijn, en de ! betekent dat sommige beveiligingsupdates zijn. Het menu op de voorgrond selecteert welke statusmeldingen moeten worden weergegeven.

Als opnieuw opstarten vereist is, wordt dit aangegeven met het symbool (R) weergegeven in de onderste balk met witte tekst op een blauwe achtergrond. Meer details en andere indicatoren zijn te lezen in de byobu man pagina.

byobu screenshot


17
2017-07-29 17:59





De /etc/motd bestand krijgt informatie over of een reboot vereist is van /var/run/reboot-required het dossier.

U kunt de inhoud van dit bestand in terminal controleren met behulp van cat /etc/motd opdracht


9
2017-07-28 21:53



update-notifier-common gebruikt om dit te maken maar niet meer - Scott


Ik heb het volgende toegevoegd aan mijn .bash-aliases-bestand:

alias rr='if [ -f /var/run/reboot-required ]; then echo "reboot required"; else echo "No reboot needed"; fi'

Leek eenvoudiger dan het installeren van een pakket voor deze relatief eenvoudige taak. Dan ren ik gewoon:

you@somewhere:~$ rr
No reboot needed
you@somewhere:~$ 

6
2017-12-16 13:22





Als u de reboot-notifier of update-notifier-gemeenschappelijke pakketten hebt geïnstalleerd, dan krijgt u de bestanden / var / run / reboot-required en /var/run/reboot-required.pkgs

reboot-notifier is nieuwer in Ubuntu Wily en Xenial. Debian-stretch, maar in jessie-backports

-update-notifier-common Is ouder, in alle Ubuntu-versies inclusief Xenial en Debian Wheezy. Niet in Debian Stretch of Jessie.

(Er is enige achtergrondinformatie over het pakket voor reboot-notifier bij https://feeding.cloud.geek.nz/posts/introducing-reboot-notifier/  )

Als u deze pakketten niet hebt geïnstalleerd, kunt u de versie van het Linux-pakket dat is geïnstalleerd vergelijken met de versie die wordt uitgevoerd:

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)

Je kunt hier zien dat de nieuwste geïnstalleerde kernel 3.16.7-ckt20-1 + deb8u4 is, maar de kernel is 3.16.7-ckt20-1 + deb8u3. Dus dit systeem heeft een herstart nodig. De u4 vs u3 aan het einde.

Mogelijk moet u het vak hierboven verschuiven. In de / proc / versie is het de versie aan het einde van de regel die er toe doet.

De zeer kleine wijziging van de versiecode is typerend voor een Debian-beveiligingsupern-update.

needrestart

Een andere optie is om de. Te installeren needrestart pakket.

sudo apt-get install needrestart
sudo needrestart -k

Schijnt te werken, zelfs als needrestart is geïnstalleerd nadat de kernel is bijgewerkt.


5
2018-03-06 21:48



Hoe correleert je eerste alinea met Ubuntu-versies? - muru
Goed punt. Bedankt. Ik was al zo lang bezig met testen en probeerde de pakketten die ik net had gemist. Ik heb een bewerking gemaakt om meer duidelijkheid te geven en ubuntu-pakketinfo op te nemen. - Tim Bray
Lang geleden om 8.04, na een update die een herstart vereiste, zou de Cog rood worden. Hoe krijg ik dat gedrag terug? - PenguinCSC
Ubuntu 14.04, ik begrijp het dpkg-query: no packages found matching linux-image-* - the_nuts
Unknown option: k in Ubuntu 14.04. - Cees Timmerman