„Wymagany restart systemu”… dlaczego? Jak mogę uzyskać to, co uruchomiło to powiadomienie, aby wyświetlać również szczegóły?

26

Co jakiś czas umieszczam SSH w pudełku z nienadzorowanymi aktualizacjami i witam się informacją „** Wymagany restart systemu ***” bez żadnych dodatkowych informacji.

Mój plik „/var/run/reboot-required.pkgs” zawiera:

linux-image-3.13.0-61-generic
linux-base
linux-base
linux-base

Nie mam nic przeciwko ponownemu uruchamianiu, ale nie lubię ponownego uruchamiania bez podania szczegółów DLACZEGO powinienem zrestartować się w pierwszej kolejności. Powyżej widzę, że dwa pakiety wywołały ten komunikat, ale nie ma poza tym wyjaśnienia.

Czy istnieje sposób, aby uzyskać dodatkowe informacje na temat przyczyny ponownego uruchomienia komputera, aby pojawiał się także podczas logowania SSH?

Idealnie chciałbym pobrać plik zawierający coś czytelnego dla człowieka, na przykład: „Pakiet xyz został zaktualizowany o [data / godzina]. Musiał zmodyfikować pliki a, b i c, ale nie mógł, ponieważ system zablokował / zablokuj akcję. Podczas następnego restartu pliki a, b i c zostaną zamienione. ” Ale coś, co nie jest całkowicie czytelne dla człowieka, jest prawdopodobnie w porządku.

E. Diaz
źródło
IMO wydaje się oczywiste: jądro zostało zaktualizowane i nie może zastąpić się na żywo (przynajmniej jeszcze nie).
muru
6
Oczywiście jest to dla ciebie oczywiste, ale tylko dlatego, że zacząłem kopać i sprawdziłem wszystko, aby pokazać, czego chcę. Nie jest to oczywiste, gdy tylko włączyłem SSH do skrzynki. Wyświetlenie listy pakietów wymagającej ponownego uruchomienia jest również niewystarczające. Chcę wiedzieć, która data i godzina tego pakietu została zaktualizowana oraz czytelny dla człowieka powód, który wyjaśnia, dlaczego pakiet chce zrestartować komputer. Jeśli twój toster chciał zrestartować komputer, chciałbyś wiedzieć, dlaczego. Dlaczego więc nie zażądać tyle, jeśli nie więcej, od bardzo złożonego systemu operacyjnego?
E. Diaz,
Ponieważ jestem idiotką? Jeśli uważasz, że pytanie wymaga wyjaśnienia, możesz je edytować.
E. Diaz,

Odpowiedzi:

24

Edycja: kolejny, prawdopodobnie odpowiedni lub przydatny artykuł .

Jak już się dowiedziałeś, możesz znaleźć pakiety wymagające ponownego uruchomienia w /var/run/reboot-required.pkgs

Teraz wystarczy zajrzeć do dziennika zmian pakietu, aby znaleźć informacje, których szukasz.

  • Jeśli jesteś już na komputerze, możesz znaleźć dzienniki zmian w /usr/share/doc/${package_name}(przykład :) zless /usr/share/doc/linux-image-3.13.0-61-generic/changelog.Debian.gz.
  • Debian udostępnia kilka narzędzi, takich jak apt-listchangesuczynienie tego wygodniejszym ( 1 , 2 , 3 ).
  • Innym sposobem na to byłoby skorzystanie z packages.ubuntu.com .

    W Twoim przypadku:

    obraz pokazujący, gdzie znaleźć link do dziennika zmian na paczkach.ubuntu.com

LiveWireBT
źródło
5

Ostatecznie wywołany plik to /usr/lib/update-notifier/update-motd-reboot-required(jest nazywany przez /etc/update-motd.d/98-reboot-required).

Wewnątrz instrukcji warunkowej if jednego z tych plików wystarczy dodać:

    echo "Packages causing reboot:"
    cat /var/run/reboot-required.pkgs

Na przykład Twój /usr/lib/update-notifier/update-motd-reboot-requiredplik wyglądałby mniej więcej tak:

#!/bin/sh -e
#
# helper for update-motd

if [ -f /var/run/reboot-required ]; then
        cat /var/run/reboot-required
        echo "Packages causing reboot:"
        cat /var/run/reboot-required.pkgs
fi
Berto
źródło