Dlaczego potrzebujemy funkcji restartu w różnych plikach binarnych?
shutdown -r
i
reboot
Czy różnią się w czymś?
Dlaczego potrzebujemy funkcji restartu w różnych plikach binarnych?
shutdown -r
i
reboot
Czy różnią się w czymś?
Odpowiedzi:
Niekoniecznie potrzebujemy ich obu, ale mamy je obie ze względu na historię Uniksa i jego różnorodność wersji.
Z odpowiednich stron podręcznika:
zamknięcie systemu jest bardziej ogólne i wydajniejsze, a ponowne uruchomienie jest bardziej przyjazne i łatwiejsze do zapamiętania.
shutdown pozwala określić argument tymczasowy (na przykład w celu ponownego uruchomienia za 5 minut) i pozwala na wiele innych czynności poza restartem, w tym:
Jeśli jednak chcesz teraz ponownie uruchomić system, łatwiej jest wpisać reboot
niż shutdown -r now
.
shutdown
teraz domyślnie używane. Nie próbuj nigdy uzyskiwać pomocy przy zamykaniu systemu shutdown -h
, szczególnie na serwerze gdzieś w centrum danych.
Oba polecenia robią coś innego, jednak mogą się do siebie nawoływać, dlatego wydaje się, że robią to samo!
reboot
wywoła jądro, aby faktycznie uruchomić sprzętowy restart. Jednak zrobi to tylko wtedy, gdy system będzie gotowy do zamknięcia - wszystkie demony i procesy użytkownika powinny zostać zatrzymane, systemy plików odmontowane itp. Więc sprawdza poziom uruchamiania systemu, a jeśli nie jest to 0 lub 6, wówczas faktycznie się wywoła shutdown
polecenia dla Ciebie.
shutdown
powoduje zmianę poziomu działania systemu. Zmiana poziomu uruchamiania (na 0 dla zatrzymania lub 6 dla ponownego uruchomienia) uruchamia wiele skryptów w /etc/rc0.d lub rc6.d, które zamykają demony, odmontowują systemy plików itp. Wreszcie te skrypty wywołują halt
lub reboot
- tym razem system jest w prawidłowy poziom działania i instruują jądro, aby zrestartowało się (lub zatrzymało).
Oprócz tego, co napisał iconoclast, istnieje ważne rozróżnienie między tymi dwoma programami: shutdown
jest włączony /sbin
, a reboot
jest włączony /usr/bin
.
Dlaczego to ma znaczenie, pytasz? Powiem Ci.
Poniżej /usr
znajdują się te, które nie muszą być dostępne, dopóki system nie uruchomi się wystarczająco daleko, aby system był minimalnie funkcjonalny. Katalogi najwyższego poziomu, które nigdy nie są tradycyjnie montowane na oddzielnych systemach plików - /bin
, /etc
, /sbin
, itd. - Oczekuje się, że będzie dostępna, gdy system jest osiągnięcie tego stanu minimalnie użyteczny. Istnieją różne implikacje tego projektu; na przykład, źle jest pisać klauzulę „stop” skryptu inicjującego SysV, który używa programów w, /usr/bin
jeśli istnieje alternatywa w /bin
lub /sbin
.
shutdown
jest kluczowym narzędziem, zawsze dostępnym. reboot
jest tylko narzędziem wygody.
reboot
jest w /sbin
Debianie (z SysVinit) i Ubuntu (z upstart).