Dlaczego Ubuntu wymaga ponownego uruchomienia w celu ukończenia aktualizacji?

15

Słyszałem, że maszyny z systemem Linux mogą działać przez wiele miesięcy bez ponownego uruchamiania. Dlaczego zatem Ubuntu mówi „Wymagane jest ponowne uruchomienie w celu ukończenia aktualizacji ...” po zainstalowaniu aktualizacji?

Użytkownicy systemów Linux i UNIX chwalą się tym, że nie zrestartowali swoich systemów, odkąd George Bush Senior był prezydentem.

http://www.tested.com/news/feature/1141-how-often-do-you-really-need-to-reboot-your-pc/

Roland
źródło
3
Większość osób, które twierdzą, że działają na systemach szczególnie zagrożonych, ale nie mają połączenia z Internetem lub stoją za wieloma zaporami ogniowymi.
Zoredache,

Odpowiedzi:

12

To, co przeczytałeś, było prawdą. Większość administratorów chwali się czasem pracy swojego komputera. Mogą to być dni, miesiące, a nawet lata.
Jednak trzeba wiedzieć, że te maszyny nie są zwykłymi komputerami stacjonarnymi. Są to wyspecjalizowane maszyny serwerowe.

Po pierwsze, rzadko uruchamiają X11. Większość systemów serwerowych zwykle zawsze będzie dostępna tylko na terminalach. Tak więc aktualizacja XServer nie ma znaczenia.
Po drugie, jak zauważył Karthik, aktualizacja X Server wymaga jedynie ponownego uruchomienia X, a nie całej maszyny. Więc twój czas pracy nadal pozostaje.

Innym bardzo ważnym punktem jest to, że systemy serwerów nie aktualizują się do najnowszej wersji jądra, jak tylko się pojawi. W systemie Ubuntu prawdopodobnie używasz teraz wersji 3.2. W moim systemie Arch korzystam z wersji 3.6, ale wiele z tych systemów o długich okresach przestoju prawdopodobnie nadal znajduje się gdzieś w linii 2.xx, aczkolwiek jest całkowicie bezpieczna z łatkami z backportem.

Wszystkie aktualizacje w takich systemach są wykonywane tylko w miejscu. Aktualizacje są najpierw testowane na maszynie testowej, a po dokładnym przetestowaniu, aby upewnić się, że nic się nie zepsuło i że nie jest wymagane ponowne uruchomienie, aby je wdrożyć, są one uaktualniane przez administratorów.

To samo możesz zrobić w systemie Ubuntu. Ale zapomnij o automatycznych aktualizacjach. Wykonaj trochę testów i spróbuj wprowadzić aktualizacje. Nawet jądra mogą być wymieniane podczas pracy. Potrzeba jednak wielu umiejętności i wiedzy, aby skutecznie go używać za każdym razem.

darnir
źródło
1
To nie jest takie trudne. Wystarczy użyć ksplice. ksplice.com/pricing
Zoredache
Wspomniałem o tym z punktu widzenia wykonywania całego procesu ręcznie, a nie za pomocą żadnego narzędzia do automatyzacji.
darnir
8

Dzieje się tak TYLKO wtedy, gdy samo jądro Linuksa jest aktualizowane. Wszystkie inne rodzaje aktualizacji są stosowane bezpośrednio. Jądra nie można wymienić podczas działania i dlatego wymaga ponownego uruchomienia.

Aktualizacja jądra powinna zdarzać się rzadko podczas regularnych aktualizacji i zwykle wykonywana tylko podczas cykli aktualizacji (12.04-12.10 itp.)

Możesz zrezygnować z ponownego uruchomienia, będzie nadal używać starego jądra.

Edycja : Zamiana jądra w trybie Hotswapping może być teoretycznie wykonana, aby zapobiec ponownemu uruchomieniu, ale nie wydaje się, aby była trywialna.

Karthik T.
źródło
2
Właśnie zrobiłem aktualizację i zaktualizowałem niektóre pliki xserver. Jednak system operacyjny mówi, że wymaga ponownego uruchomienia w celu ukończenia aktualizacji. Jestem też pewien, że gdzieś przeczytałem, że Linux OS może kontynuować działanie bez restartu nawet po aktualizacji jądra.
Roland,
7
xserver ZNACZNIE nie wymaga restartu, możesz po prostu zrestartować xserver :). Jest to po prostu prostsza instrukcja, aby powiedzieć, uruchom ponownie komputer. W wielu przypadkach wystarczy się wylogować.
Karthik T
$ cat /var/run/reboot-required.pkgswyjścia libssl1.0.0- czy libssl jest częścią jądra?
Dan Dascalescu
3
@DanDascalescu Nie powinno być, a jeśli mnie zapytasz, restart nie jest obowiązkowy podczas aktualizacji openssl / libssl, o ile upewnisz się, że zrestartowałeś wszystkie programy / usługi, które używają openssl / libssl. Wierzę, że opiekunowie pakietu właśnie wybrali łatwą drogę i grają bezpiecznie, wymagając ponownego uruchomienia zamiast przeprowadzania wszystkich uruchomionych procesów, sprawdzania, którzy używają libssl, a następnie zgadywania, aby odwzorować procesy na nazwy usług upstart i / lub sysvinit .
blubberdiblub