Czy restart jest taki sam jak init 6?

22

Czy restart jest taki sam jak init 6 dla Ubuntu?

Używam Ubuntu 12.04 na Amazon EC2. Kiedy ssh'ed w polu mogę pisać runleveli otrzymuję:

N 2

Patrząc na man rebootwidzę, że:

Narzędzie to, wywoływane z opcją --force lub na poziomie 0 lub 6, wywołuje samo wywołanie systemowe reboot (2) i bezpośrednio restartuje system. W przeciwnym razie po prostu wywołuje narzędzie shutdown (8) z odpowiednimi argumentami.

Jeśli przeczytam man shutdown 8, zobaczę:

Shutdown zapewnia bezpieczne wyłączenie systemu. Wszyscy zalogowani użytkownicy są powiadamiani o tym, że system się wyłącza, aw ciągu ostatnich pięciu minut od TIME nowe logowania są blokowane.

Moje podstawowe zrozumienie różnicy między rebooti init 6to:

  • W innych dystrybucjach i być może starsze dystrybucje rebootpo prostu odmontują dyski i po prostu przestawią przełącznik zasilania bez uruchamiania skryptów zamykających
  • init 6uruchomi wszystkie skrypty zamykające, /etc/init/rc.*ponieważ zmniejsza poziom uruchamiania systemu
  • W nowszych wersjach Ubuntu rebootpolecenie bez polecenia --forcelub -furuchomi polecenie zamknięcia systemu, co w zasadzie zrobiłoby to samo coinit 6
  • Prawdopodobnie lepiej jest przyzwyczaić się do używania init 6zamiast tego, rebootponieważ jest to bezpieczniejsze i działałoby lepiej między dystrybucjami, ale domyślne zachowanie rebootzmieniono, aby zapobiec błędom / utracie danych, jeśli ktoś go użyje.

Czy to w porządku? Jeśli nie, czego mi brakuje?

cwd
źródło

Odpowiedzi:

23

init 6Zamiast tego rebootnie ma naprawdę żadnego ważnego powodu , chyba że:

  • Z jakiegoś powodu brakuje rebootpliku wykonywalnego lub
  • Celowo starasz się unikać powiadamiania użytkowników o awarii systemu.

reboot(o ile nie biegniesz reboot --force) jest tak naprawdę „bardziej miękkim” sposobem zamknięcia.

Rozważać:

init 6uruchomi wszystkie skrypty zamykające, /etc/init/rc.*ponieważ zmniejsza poziom uruchamiania systemu

Ale poleceń , zwany bez tej flagi, tylko bezpośrednio restartuje system (poprzez do wywołania systemowego ), gdy stosuje się jeden z tych dwóch sytuacjach:reboot--forcereboot

  • System jest w runlevela 0 (tryb pojedynczego użytkownika), więc nie ma obniżenie poziomu działania, które mogą wystąpić, więc żadne skrypty zamykania są uruchamiane automatycznie.
  • System działa na poziomie 6. Co init 6to jest, aby ustawić system na poziomie 6. Znowu nic się nie uruchomi, czego init 6nie zrobi rebootpolecenie.

W przeciwnym razie sudo rebootjest równoważne z sudo shutdown -r now. Robi to wszystko, co dobre sudo init 6, ale także:

  • informuje użytkowników, że system nie działa.
  • zapobiega nowym logowaniom (choć prawdopodobnie i tak się nie powiedzie).
  • jest bardziej intuicyjny i samodokumentujący niżsudo init 6 .

Jeśli korzystasz z systemu, w którym jesteś zalogowany i logujesz się tylko lokalnie, nie ma nic złego w init 6ponownym uruchomieniu. Jeśli tak wolisz zrestartować komputer, to idź naprzód - nic nie raniąc, robiąc to. Ale nie ma też nic obiektywnie korzystnego w robieniu tego w ten sposób.

initz własnej dokumentacji wynika, że ​​nie jest to normalny sposób zamykania lub ponownego uruchamiania systemu. Weź pod uwagę, że gdy initjest uruchamiany przez użytkownika (tak jak podczas uruchamiania sudo init 6), tak naprawdę działa telinit(patrz man init). telinitjest tym, co faktycznie zmienia poziomy pracy. I man telinitmówi nam:

Zwykle można użyć narzędzia shutdown (8), aby zatrzymać lub ponownie uruchomić system lub sprowadzić go do trybu pojedynczego użytkownika.

Eliah Kagan
źródło
Mam Alienware X51 Dell PC, na którym zainstalowałem Ubuntu 13.04 i jądro 3.11. Kiedy wykonuję $ init 6, restartuje się, a czasami BIOS ciągle pokazuje. CZY to dlatego, że używam init 6, a nie polecenia restartu?
1
@YumYumYum Nie rozumiem, dlaczego używanie init 6tego powoduje. Kiedy używasz rebootzamiast init 6, czy zawsze wychodzi poza BIOS?
Eliah Kagan,
1
Zaktualizowałem oprogramowanie BIOS z A00 do A02, od tego czasu moje ponowne uruchomienie lub init 6 działa, więc wydaje się, że problem z BIOSem był. Dziękuję Ci.
Uruchamianie rebootpostojów czasami na moim Ubuntu Server 14.02 pojedynczego użytkownika i jedynego lokalnego logowania. Czy to bezpieczne, że zawsze syncpo nim następuje reboot -f?
user3549648,