4

Это, вероятно, глупый вопрос с простым ответом, но я не могу пролить свет на него после нескольких часов работы Google. Из того, что я узнал, команда halt в UNIX (например, BSD) и Unix-подобных системах (например, Linux) остановит процессор после вызова sync . Я знаю , что на большинстве современных Linux дистрибутивах halt это просто еще один способ вызвать shutdown но я установил FreeBSD и Arch Linux на моем ноутбуке, и обе эти системы , кажется, делают то , что halt предполагается сделать (остановить процессор, но дон отключение ACPI). У меня вопрос, что после звонка

# sync;sync;sync
# halt

Безопасно ли "тянуть за вилку" или отключать питание (от розетки на стене)? После вызова halt система действительно находится в выключенном состоянии?

Бонус: после вызова halt на eiter Arch Linux или FreeBSD мой компьютер кажется "остановленным", как будто он не отвечает, и ничего не работает, но я все еще слышу, как работает вентилятор. Вентилятор останавливается после того, как я отключаю питание. Так что это не проблема, мне просто интересно, может быть halt не останавливает все оборудование, а только останавливает процессор?

3 ответа3

5

Пока sync завершена, отключение возможно всегда нормально!

В старые добрые времена вы могли повредить диск, если вытащили вилку, когда головка не была припаркована, но в наши дни нет никакого повреждения оборудования, которое вы можете сделать (возможно, может быть ... давайте будем в безопасности и не будем этого делать)).

Это только оставляет повреждение программного обеспечения. Ясно, что отключение от сети в середине работы с большим диском - плохой план, но если машина простаивает, вы сохранили открытые документы и сделали sync для очистки буферов записи, а затем внезапное отключение питания. Вне мероприятия вряд ли будет больно. В любом случае, после halt программное обеспечение больше ничего не сделает, поэтому любой ущерб, который должен был быть нанесен, уже нанесен.

Конечно, это спорный вопрос, потому что halt - это просто синоним shutdown -H now , которое будет корректно и корректно завершать работу всех запущенных процессов и служб, синхронизировать все данные и размонтировать все файловые системы.

Что касается других аппаратных устройств, они все еще работают, бездействуя. Экран будет продолжать показывать то, что было на экране до остановки процессора. Поклонники будут продолжать делать то, что они делают, без программного контроля. Диск будет делать все, что говорит его настраиваемый профиль питания.

Фактически, в зависимости от вашей машины, процессор может даже не выключаться - он может просто быть занят вращением бесконечного цикла, ожидая, когда кто-нибудь нажмет перезагрузку.

4

Я бы рекомендовал против этого. В то время как некоторые / большинство современных ОС псевдонимы сейчас halt - shutdown -h now , это плохая практика, чтобы полагаться на это.

В своей истинной форме halt - это очень резкое прекращение всей активности процессора, и она действительно предназначена для rc.d на уровне запуска init 0 после того, как система выполнила правильную последовательность завершения работы ... Хотя вы синхронизировали диски, которые отвечают за большую часть риска повреждения данных, по-прежнему требуется гораздо больше операций очистки (размонтирование FS, файлы блокировки и т.д.), Необходимых для правильного завершения работы.

Вы также рискуете, что какой-то процесс начинает делать что-то критическое прямо между вызовами sync и halt - независимо от того, как быстро вы их связываете (если вы не можете каким-то образом гарантировать поведение планировщика ЦП ... что вы не можете).

Лучше всего вызывать shutdown -h now , который будет корректно останавливать все процессы и демоны, отключать файловые системы и в конечном итоге приводить систему в то же состояние остановки. Тогда вы можете безопасно отключить питание. Этот метод также имеет то преимущество, что вызывает команду отключения питания ACPI (в современных системах, поддерживающих ACPI), которая заставляет блок питания отключать питание (тем самым останавливая вентиляторы и все остальное) в отличие от (истинного) halt , который не выдает никаких команд ACPI и будет простаивать процессор со все еще включен.

0

Да, это цель команды halt . Это приводит к прекращению всей деятельности.

Эти команды немедленно выключают систему при подготовке к отключению питания:

  • отключение sudo -h сейчас
  • sudo poweroff
  • остановка
  • sudo init 0

УВЕДОМЛЕНИЕ СВЕТОВОГО ИНДИКАТОРА ЖЕСТКОГО ПРИВОДА

Если есть активность, то система все еще работает. Это прекратится вскоре после этих команд.

Как только он перестает мигать, вы знаете, что он завершил работу.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .