Niedawno miałem do czynienia z przykrym, przerywanym problemem punktu zawieszenia klienta / serwera NFS. Kiedy problem występuje na kliencie, nie mogę odmontować, podobnie jak inne dziwne zachowania. Jedynym natychmiastowym rozwiązaniem, jakie mam do tej pory, jest ponowne uruchomienie skrzynki klienta.
Ale w shutdown -r now
ogóle nie działa. Od tamtej pory odkryłem reboot -f
, że restartuje system. Dlaczego? Przeczytałem strony podręcznika, ale nic nie wydaje się odpowiadać na moje pytanie.
Dlaczego shutdown -r now
zachowuje się inaczej niż reboot -f
?
(Nadal rozwiązuję problem z NFS, ale to nie jest moje pytanie tutaj).
shutdown
instruuje,init
aby rozpocząć procedurę zamykania, która polega na powiadomieniu zalogowanych użytkowników, że system się wyłącza, zgrabnym zabiciu wszystkich procesów, odmontowaniu i synchronizacji dysków itd. Jesteś zawieszony, ponieważ procesy, które utknęły w oczekiwaniu na IO, są bardzo trudne do zabicia, a twojego zablokowanego podłączenia NFS nie można odmontować.reboot -f
, z drugiej strony, natychmiast ponownie uruchamia serwer bez robienia tego. (reboot
toinit
wywołania programu w celu zamknięcia serwera. Bez-f
flagi sprawdzi, czyinit
uważa, że obecnie się restartuje, a jeśli nie, zadzwoni,shutdown
aby rozpocząć proces).źródło
Ponieważ „restart” -f ”nie przechodzi na poziom 0 - nakazuje systemowi operacyjnemu ponowne zainicjowanie procesora bezpośrednio. Strona podręcznika na moim najbliższym Linux-ie mówi:
Strona podręcznika zamykania wyjaśnia więcej.
źródło
Jeśli użyjesz tej
intr
opcji w instalacjach NFS,shutdown -r now
powinno być możliwe zabicie procesów oczekujących na IO NFS na zakończenie. Może to spowodować uszkodzenie pliku, ale najprawdopodobniej nie spowoduje więcejshutdown -f
.źródło