halt и reboot — утилиты в UNIX-подобных операционных системах, предназначенные для безопасного завершения работы и перезагрузки компьютера. Они выполняют последовательность действий по подготовке системы к выключению: завершают все запущенные процессы, синхронизируют и размонтируют файловые системы, а затем инициируют остановку или перезапуск ядра. Эти утилиты являются стандартными и присутствуют в большинстве дистрибутивов Linux и BSD-системах, таких как FreeBSD.

Функциональность Утилиты `halt` и `reboot` обеспечивают корректное завершение работы системы. Их основные функции включают: Отправку сигнала `SIGTERM` (а затем `SIGKILL`) всем процессам, позволяя им завершиться правильно. Вызов системного вызова `sync()` для записи всех данных из кэша файловой системы на диск. Размонтирование файловых систем. Запись события о выключении или перезагрузке в системный журнал (`syslog` или `journal`). Непосредственную передачу команды ядру операционной системы для остановки (`halt`) или перезагрузки (`reboot`).

В некоторых системах (например, FreeBSD) также существуют команды `fasthalt` и `fastboot`, которые являются символическими ссылками (алиасами) на `halt` и `reboot` соответственно.

Использование Синтаксис команд в системах семейства BSD: halt [-lnpq] [-k ядро] reboot [-dlnpq] [-k ядро] fasthalt [-lnpq] [-k ядро] fastboot [-dlnpq] [-k ядро]

Основные параметры (флаги) В следующей таблице перечислены ключевые параметры для данных утилит на основе документации FreeBSD.

Флаг Описание `-d` Создать дамп памяти ядра при перезагрузке для последующего анализа сбоев. `-k` ядро Загрузить указанное ядро при следующей загрузке системы. Если загрузка пройдёт успешно, это ядро может стать загрузочным по умолчанию. `-l` Не производить запись в системный журнал. Этот флаг может использоваться сценариями более высокого уровня (например, `shutdown`), которые сами ведут логирование. `-n` Не выполнять принудительную синхронизацию файловых систем перед остановкой. **Не рекомендуется к использованию**, так как может привести к потере данных. `-p` После остановки системы попытаться отключить питание компьютера, если это поддерживается аппаратно. `-q` Выполнить «быструю» остановку или перезагрузку. Процессы завершаются немедленно без отправки сигнала `SIGTERM`. **Не рекомендуется к использованию** в нормальных условиях.

Современные аналоги и оболочки В современных дистрибутивах Linux прямые вызовы `halt` и `reboot` часто перенаправляются на более универсальные системные менеджеры, такие как systemd. Команды `systemctl halt` и `systemctl reboot` предоставляют расширенный контроль над процессом остановки, интеграцию с cgroups, планировщиками и другими сервисами. Тем не менее, традиционные утилиты сохраняются для обратной совместимости.

См. также shutdown — утилита для планированного выключения или перезагрузки системы. init и systemd — системы инициализации, управляющие процессами запуска и остановки. runlevel — уровни выполнения в системах SysV init.

Примечания

Ссылки Официальная man-страница halt (Linux) на man7.org Официальная man-страница halt (FreeBSD)

Категория:Утилиты Unix Категория:Администрирование UNIX