Jak poprawnie zamknąć lub zrestartować serwer Unix / Linux

11

Jaki jest prawidłowy sposób wyłączenia serwera Unix / Linux?

Od Google'a nauczyłem się (mam nadzieję) następujących rzeczy:

shutdown : powinienem użyć tego parametru z parametrem -h, aby zatrzymać, lub parametrem -r, aby zrestartować komputer

halt : zatrzymuje komputer (zatrzymuje procesor? czy to fizycznie wyłącza zasilanie komputera?). Myślę, że to wywoła zamknięcie, jeśli nie na init0, w przeciwnym razie po prostu się zatrzyma.

restart : jeśli nie przy init6, wywołuje zamknięcie, w przeciwnym razie po prostu ponownie uruchamia komputer.

jeśli wszystko jest poprawne, jedyne, czego nie mogę zrozumieć, to dokładnie to, co „zatrzymuje”. Czy to po prostu zatrzymuje procesor, ale nie wyłącza fizycznie komputera? Jak „wyłączyć” komputer?

Dzięki

Tony Stark
źródło

Odpowiedzi:

13

shutdown -h nowwyłączy komputer z większością systemów, ale zależy to od implementacji. Użyj -Pna pewno do wyłączenia zasilania i -Hdo zatrzymania na pewno. Jest to metoda, którą poleciłbym zamknąć system. Uruchomi wszystkie właściwe skrypty.

haltbez -fwywoła tylko powyższe zamknięcie i tak też będzie reboot, są to po prostu aliasy.

Kyle Brandt
źródło
Jestem teraz wielkim fanem / sbin / shutdown -h (-r). używanie „halt” zawsze mnie przerażało.
RateControl
1
Thoreau ma jeszcze jeden dobry argument: powinieneś próbować nazywać ważne polecenia systemowe za pomocą jawnej ścieżki (np. / Sbin / shutdown). To może cię uratować, jeśli twój system zostanie kiedykolwiek naruszony i nie będziesz tego świadomy.
Ryan Fisher
1
mystikphish: Zgoda, zamierzam przyjąć ten nawyk. Chociaż ma rację, nie wiem, czy ogólnie zaufałbym jego radom w zakresie informatyki, gdyby spędzał cały swój czas w kabinie z jednym pokojem bez prądu.
Kyle Brandt,
Byłby to kiepski kompromis, gdyby nie zmienił pliku wykonywalnego na ścieżce zapisanej w twoich palcach ...
asjo
@Kyle Brandt, miło.
Joseph Kern
3

W Linuksie zawsze używałem rebooti haltchociaż znam też ludzi, którzy są haltprzerażający. halt(8)rodzaj mówi dlaczego:

W starszych wersjach sysvinit nigdy nie należy bezpośrednio wywoływać restartu i zatrzymania. Od wersji 2.74 po zatrzymaniu i ponownym uruchomieniu wywołuje zamknięcie (8), jeśli system nie znajduje się na poziomie 0 lub 6. Oznacza to, że jeśli zatrzymanie lub ponowne uruchomienie nie może znaleźć bieżącego poziomu (na przykład, gdy / var / run / utmp nie ma został poprawnie zainicjowany) zostanie wywołane zamknięcie, które może nie być tym, czego chcesz. Użyj flagi -f, jeśli chcesz mocno się zatrzymać lub uruchomić ponownie.

sysvinit 2.74 jest datowany 17 marca 1998 21:53. :)

Jeśli chodzi o pytanie, jak wyłączyć, możesz użyć powerofflub halt -p. Wydaje się, że najnowsze systemy Linux wyłączają się tylko haltlub shutdown -hteż.

Marie Fischer
źródło
Solaris wciąż jest w tłumie, gdzie „halt” robi przerażające rzeczy.
Karl Katzke,
3

Używam halt- mniej parametrów do zapamiętania.

Ktoś opracował wirtualną Strażnik Molly, aby upewnić się, że przypadkiem nie zatrzyma niewłaściwego serwera. Kilkakrotnie mnie to uratowało. Jest pakowany molly-guardna Ubuntu.

Morten Siebuhr
źródło
1
Na wypadek, gdyby ktokolwiek zastanawiał się, jak działa Molly-Guard, oto przykład: guillaume.segu.in/blog/home/118/…
Marie Fischer,
1

Ogólnie używam (oczywiście jako root):

 init 0

doprowadzić system do stanu wyłączenia zasilania. Spowoduje to wykonanie skryptu wybiegowego.

 init 6

w celu wyłączenia systemu i automatycznego zrestartowania. Spowoduje to również wykonanie skryptu wybiegu.

mdpc
źródło
1
halt uruchomiłby również wszystkie skrypty startowe z parametrem „stop”.
hayalci,
1
W jakim systemie ładnie się nie wyłącza?
asjo
2
W oparciu o powyższe dwa komentarze zredagowałem notatkę, aby usunąć komentarz zatrzymania. Jednak sprawdziłem na FreeBSD 7.2, a Solaris 10 5/2009 x86 wykonujący proste polecenie zatrzymania na tych dwóch systemach NIE uruchomi standardowej sekwencji wybiegu. Jednak w Centos 5.3, OpenSUSe 11.1 i Fedora 11 polecenie zatrzymania DO włącza standardową sekwencję podsumowania i działa w zasadzie jak init 0. FYI ....
mdpc
0

Warto zauważyć tutaj:

Solaris potrzebuje albo „shutdown -y -i5 -g0”, aby zamknąć, albo „shutdown -y -i6 -g0”, aby zrestartować komputer. Wstrzymaj lub uruchom ponownie w Solarisie należy używać tylko wtedy, gdy dopuszczalne jest, aby nie dawać ostrzeżenia ani okresu karencji przed rozpoczęciem zamykania rzeczy ... może to trochę siać spustoszenie w systemach dyskowych, jeśli nie odmontujesz ich przed wyłączeniem, y 'wiedzieć?

Najlepiej jest zastosować procedury, które są najlepsze dla systemów operacyjnych, których dotykasz codziennie, aby przypadkowo nie przykręcić niczego o drugiej w nocy palcami na autopilocie.

Na przykład nigdy nie wpisuj „killall” w solaris, podczas gdy w Linuksie jest to dość powszechne polecenie. Jednak „pkill” działa tak samo na obu.

Karl Katzke
źródło
0

Aby natychmiast go wyłączyć, wpisz:

shutdown -h now 

i aby go natychmiast zamknąć i ponownie uruchomić wpisz:

shutdown -r now
użytkownik3571127
źródło
1
Uważam, że jest to najlepsza odpowiedź, nie jestem pewna, dlaczego była przegłosowana.
Basil A