Перезагрузка такая же, как init 6?

22

Является ли перезагрузка такой же, как init 6 для Ubuntu?

Я использую Ubuntu 12.04 на Amazon EC2. Когда ssh'ed в поле, я могу напечатать runlevelи я получаю:

N 2

Глядя на это man rebootя вижу что:

При вызове с параметром --force или на уровне выполнения 0 или 6 этот инструмент вызывает сам системный вызов reboot (2) и непосредственно перезагружает систему. В противном случае это просто вызывает инструмент shutdown (8) с соответствующими аргументами.

Если я читаю, man shutdown 8я вижу:

завершение работы обеспечивает безопасное отключение системы. Все вошедшие в систему пользователи уведомляются о том, что система выходит из строя, и в течение последних пяти минут ВРЕМЕНИ новые входы запрещены.

Мое основное понимание разницы между rebootи init 6является:

  • На других дистрибутивах и, возможно, старых дистрибутивах rebootпросто размонтируйте диски и, в основном, щелкните переключатель питания, не запуская сценарии выключения
  • init 6запустит все сценарии завершения работы, так /etc/init/rc.*как это снижает уровень запуска системы
  • В более новых версиях Ubuntu rebootкоманда без --forceили -fзапускает команду выключения, которая в основном делает то же самое, что иinit 6
  • Вероятно, лучше привыкнуть использовать init 6вместо того, rebootчтобы быть более безопасным и работать лучше в кросс-дистрибутиве, но поведение по умолчанию rebootбыло изменено, чтобы попытаться предотвратить ошибки / потери данных, если кто-то их использует.

Это примерно так? Если нет, то что мне не хватает?

УХО
источник

Ответы:

23

На самом деле нет веских причин использовать init 6вместо reboot, если:

  • По какой-то причине вам не хватает rebootисполняемого файла, или
  • Вы сознательно пытаетесь не уведомлять пользователей о том, что система выходит из строя.

reboot(до тех пор, пока вы не бегаете reboot --force) на самом деле это «более мягкий» способ выключиться.

Рассмотреть возможность:

init 6запустит все сценарии завершения работы, так /etc/init/rc.*как это снижает уровень запуска системы

Но команда , названная без с флагом, только непосредственно перезагружает систему ( с помощью в системном вызове ) , когда применяется один из этих двух ситуаций:reboot--forcereboot

  • Система находится на уровне выполнения 0 (однопользовательский режим), поэтому снижение уровня запуска не может произойти, поэтому сценарии выключения не запускаются автоматически.
  • Система находится на уровне выполнения 6. Что init 6означает перевод системы на уровень запуска 6. Опять же, ничего не работает init 6, не выполнив rebootкоманду, не выполнит команду.

В противном случае sudo rebootэквивалентно sudo shutdown -r now. Это делает все хорошие вещи sudo init 6, но также:

  • уведомляет пользователей о том, что система выходит из строя.
  • предотвращает новые входы в систему (хотя они, вероятно, в любом случае не будут успешными).
  • является более интуитивным и самодокументированным, чемsudo init 6 .

Если вы работаете в системе, в которой только вы вошли в систему и используете только локальные учетные записи, нет ничего плохого в использовании init 6для перезагрузки. Если вы предпочитаете перезагружаться, тогда во что бы то ни стало, продолжайте - вы этим ничего не навредите. Но нет ничего объективно предпочтительного в этом.

initВ собственной документации сказано, что это не обычный способ выключения или перезагрузки системы. Учтите, что когда initон запускается пользователем (например, когда вы запускаете sudo init 6), он фактически запускается telinit(см. man init). telinitэто то, что на самом деле меняет уровни выполнения. И man telinitговорит нам:

Обычно вы используете инструмент shutdown (8), чтобы остановить или перезагрузить систему или перевести ее в однопользовательский режим.

Элия ​​Каган
источник
У меня есть Alienware X51 Dell PC, где я установил Ubuntu 13.04 и ядро ​​3.11. Когда я делаю $ init 6, он перезагружается, и иногда BIOS продолжает показываться вечно. Это потому, что я использую init 6, а не команду перезагрузки?
1
@YumYumYum я не вижу , почему использование init 6может вызвать это. Когда вы используете rebootвместо init 6, всегда ли он проходит через BIOS?
Элия ​​Каган,
1
Я обновил прошивку BIOS с A00 до A02, с тех пор моя перезагрузка или init 6 работают так, что похоже проблема с BIOS была. Спасибо.
Запуск rebootпривалы иногда на моем Ubuntu Server 14.02 на одного пользователя и только локального входа. Это безопасно, я всегда делаю с syncпоследующим reboot -f?
user3549648