Czy oprócz aktualizacji jądra są jakieś zmiany w systemie Linux, które wymagają ponownego uruchomienia? Wiem, że są sytuacje, w których ponowne uruchomienie ułatwia rzeczy, ale czy są takie, których nie można wykonać inaczej niż przy ponownym uruchomieniu?
Aby wyjaśnić: myślę o typowym systemie stacjonarnym lub serwerowym, który nie cierpi z powodu awarii sprzętu.
Odpowiedzi:
Przychodzi mi na myśl kilka rzeczy:
Odzyskaj z paniki jądra
Paniki jądra, z definicji, nie można odzyskać bez ponownego uruchomienia jądra.
Odzyskaj z zawieszonych, które pozostawiają cię bez dostępu do terminala
Jeśli system nie reaguje na polecenia i nie możesz wydać poleceń w celu przywrócenia systemu, jedyne, co możesz zrobić, to zrestartować komputer. Zwykle chcesz uniknąć ręcznego wyłączania zasilania. W takich sytuacjach jądro Linuksa ma obsługę Magic SysRq, której można użyć do ponownego uruchomienia komputera w sytuacji awaryjnej.
Dopóki
CONFIG_MAGIC_SYSRQ
opcja jest włączona w konfiguracji jądra, akernel.sysrq
sysctl
opcja jest włączona, możesz wydawać polecenia bezpośrednio do jądra za pomocą magicznych kombinacji klawiszy SysRq:Zauważ, że Alt+ SysRqponiżej oznacza naciśnij i przytrzymaj Alt , a następnie naciśnij i przytrzymaj SysRq (zazwyczaj PrintScrnklawisz).
SIGTERM
do wszystkich procesów, z wyjątkiem tychinit
, które dają im szansę na pełne zakończenie działaniaSIGKILL
do wszystkich procesów, z wyjątkieminit
wymuszania ich zakończeniaAlt+ SysRq+ b: uruchom ponownie komputer lub
Alt+ SysRq+ o: zamknij
Mnemonik dla magicznych kombinacji klawiszy SysRq do próby płynnego ponownego uruchomienia to:
„ R eboot E ven I f S ystem U tterly B roke ”
W przypadku serwerów bezgłowych istnieje nawet cel iptables umożliwiający zdalne sekwencje SysRq w sieci.
Odzyskaj ze stanu nie do rozruchu
Jeśli system został już doprowadzony do stanu, w którym normalne uruchomienie nie jest możliwe (np. W wyniku nieudanej aktualizacji systemu, uszkodzonego systemu plików itp.), Wówczas jedynym sposobem uzyskania dostępu do konsoli odzyskiwania w systemie może być ponowne uruchomienie przy użyciu odpowiednich opcji czasu rozruchu.
Zmień parametry jądra w czasie uruchamiania
Niektóre parametry jądra (np. W
audit
celu włączenia / wyłączenia kontroli jądra) można ustawić tylko wtedy, gdy jądro jest ładowane podczas rozruchu.źródło
Są dwa razy, kiedy mogę wymyślić, gdzie chciałbym zrestartować komputer:
Kiedy muszę się upewnić, że system może uruchomić się w odpowiednim stanie.
Kiedyś pracowałem nad systemem, w którym działał jakiś demon. Po kilku latach działania z powodu awarii zasilania nastąpiło ponowne uruchomienie, ale demon nie był częścią procesu uruchamiania i nikt nie miał pojęcia, jak skonfigurowano go wiele lat wcześniej. System był wyłączony przez kilka dni, a my zastanawialiśmy się, jak go zmienić.
Ponowne uruchomienie jest jedynym sposobem, aby upewnić się, że system uruchomi się ponownie poprawnie po awarii zasilania.
Po aktualizacji biblioteki systemowej.
Powiedzmy, że w bibliotece współdzielonej z wieloma aplikacjami / serwerami w systemie odkryto poważną lukę w zabezpieczeniach. Możesz zaktualizować bibliotekę bez ponownego uruchamiania, ale ile procesów nadal działa przy załadowanej niezabezpieczonej bibliotece? Możesz starannie zrestartować wszystko przy użyciu starej biblioteki (jeśli możesz to rozgryźć), ale jest to podatne na błędy i może potrwać dłużej niż tylko ponowne uruchomienie.
Ponowne uruchomienie jest najlepszym sposobem na upewnienie się, że wszystkie uruchomione procesy nadal nie korzystają ze starej, błędnej biblioteki.
źródło
lsof
zanim zaktualizujesz biblioteki.Jeśli masz na myśli planowane zmiany w konfiguracji oprogramowania i zakładasz doskonale działający sprzęt (jeszcze tego nie widziałem) i oprogramowanie wolne od błędów (wiesz ...), to tylko błąd w jądrze lub sterownik zmusiłby cię do restart. :)
Poza tym ... Nie jestem pewien, czy można go wymienić
init
bez przełączania się w tryb pojedynczego użytkownika i wykonywania magii, która zasadniczo nie różni się niczym od ponownego uruchomienia.źródło