W naszej organizacji jest około 500 maszyn RedHat Linux.
Na wszystkich komputerach zainstalowaliśmy aplikacje i usługi pod /etc/init.d
serwerami RAC i Oracle. Zamierzamy wykonać mniam aktualizacje na wszystkich komputerach, a następnie ponownie uruchomić komputer.
Zastanawiałem się więc, które polecenie jest bezpieczniejsze:
reboot
lub
shutdown -r now
reboot
jest to tylko starsze polecenie i nadal istnieje tylko dla wstecznej zgodności.Odpowiedzi:
W systemach Red Hat nie ma funkcjonalnej różnicy między
reboot
ishutdown -r now
.Rób wszystko, co jest dla ciebie łatwiejsze.
źródło
halt
,reboot
apoweroff
nie akceptują wiadomość powód ani czasu, jak wyjaśniono Mikhail T. . Myślę, że uważam jedno narzędzie za coś, co inne nie pozwala na „funkcjonalną różnicę”.Zalecane jest zamknięcie, ponieważ pozwala określić przyczynę drastycznego działania - coś, co zawsze należy zrobić. Wiadomość zostanie zapisana w dzienniku (ach) dla potomności. Na przykład:
shutdown -r now 'Kernel upgrade requires reboot'
Możesz także wykonać zaplanowane ponowne uruchomienie - określając coś innego niż
now
czas ponownego uruchomienia:shutdown -r 22:00 'Work around kernel memory leak'
Następnie użytkownicy będą otrzymywać okresowe przypomnienia, aby wyjść i tak dalej - proces będzie bardziej uporządkowany i profesjonalny.
źródło
Jeśli spojrzeć, w RHEL 7 obie
/sbin/shutdown
i/sbin/reboot
są właściwie tylko dowiązania symboliczne do Systemd wsystemctl
poleceniu. Więc używaj, co chcesz. Żadna różnica funkcjonalna, jak powiedział ewwhite, nawet we wcześniejszych wersjach RHEL, które nie korzystały jeszcze z systemd.źródło
/sbin/shutdown
i/sbin/reboot
nie nie zachowują się tak samo we wszystkich przypadkach (w szczególności:/sbin/shutdown
! Nie restart domyślnie), więc jeśli są dowiązane do tego samego pliku wykonywalnego, to wykonywalny musi badać goARGV[0]
i odpowiednio dostosowywać jego zachowanie. Chociaż z pewnością zmniejsza to ryzyko niezamierzonych różnic, nie jest to przekonujący dowód na to, że nie ma zamierzonych różnic funkcjonalnych, o których OP mógłby chcieć wiedzieć.reboot
jest dowiązany dosystemctl
, nie możesz używać np.reboot status whatever.service
tak jak z tym drugim, prawda?Korzystanie
reboot
jest bezpieczniejsze.Używanie
reboot
intencji jest jasne i nie ma sposobu, aby pomylić ją z czymś innym,shutdown -t now
co może prowadzić do bólu głowy, jeśli używasz na zdalnym serwerze z ograniczoną kontrolą.źródło
W przypadku nowoczesnego RHEL zaleca się użycie komendy systemctl, tak jak to tutaj podsumowano : [ostatnie] Dystrybucje RHEL powinny używać nowej komendy systemctl do wydania polecenia poweroff / restart. Jak podano na stronach ponownego uruchamiania i zamykania systemu, są one „starszym poleceniem dostępnym tylko dla kompatybilności”.
Jeśli jednak używasz wielu różnych dystrybucji lub dystrybucji różnych roczników, być może trzymaj się
shutdown -r now 'reason for shutdown'
.Głównym powodem użycia
reboot
byłoby uniknięcie ryzyka zapomnienia o dodaniu -r podczas używaniashutdown -r
na zdalnym komputerze, co może łatwo skutkować niemożnością ponownego zalogowania się i koniecznością użycia zdalnego administratora (jeśli jest dostępny) w celu ponownego uruchomienia maszyna.źródło
Starsze systemy zdecydowanie rozróżniały między
shutdown
ireboot
. Ta ostatnia nie zamknie usług, a nawet zsynchronizuje bufory dysku. W środowiskach heterogenicznych - lub w celu uniknięcia precedensu, który może być niebezpieczny w przyszłości podczas napotkania innych implementacji * ix - wartoshutdown
przyzwyczaić się.źródło