Команда halt предназначена для прекращения работы центрального процессора системы с отправкой сообщений всем ее пользователям. В большинстве случаев ее использование приводит к полному прекращению работы системы. Реализация функции, используемой посредством данной команды, зависит от архитектуры центрального процессора; например, в архитектуре x86 для этой цели предусмотрена специальная инструкция HLT. В текущее время эта команда является устаревшей, поэтому после перехода большинства дистрибутивов на менеджер инициализации systemd она была реализована в виде простой символьной ссылки на утилиту systemctl из состава systemd. Более того, в дистрибутивах Linux Mint, Ubuntu и Debian ее может не быть в системе по умолчанию. В таком случае при возникновении необходимости использования этой команды, а также таких команд, как reboot и shutdown, следует установить пакет программного обеспечения systemd-sysv с помощью следующей команды:
$ sudo apt-get install systemd-sysv
Базовый синтаксис команды выглядит следующим образом:
# halt [параметры]
Утилита systemctl автоматически обрабатывает вызовы посредством символьной ссылки с именем halt и поддерживает параметры соответствующей утилиты для совместимости.
Наиболее важными параметрами являются параметры --poweroff и --reboot, позволяющие выключить и перезагрузить систему соответственно, параметр --force, предназначенный для принудительного прекращения работы центрального процессора путем осуществления системного вызова без подготовки системы, параметр --wtmp-only, позволяющий добавить запись в файл журнала /var/log/wtmp и не прекращать работу центрального процессора, параметр --no-wtmp, позволяющий прекратить работу центрального процессора без добавления записи в файл журнала /var/log/wtmp, а также параметр --no-wall, позволяющий не отправлять сообщение о прекращении работы центрального процессора всем пользователям системы.
Что касается утилиты systemctl, то она осуществляет изоляцию цели halt.target (то есть, достижение этой цели и закрытие всех остальных целей), в ходе которой осуществляется системный вызов reboot(RB_HALT_SYSTEM). Если вы не хотите использовать команду halt, вы можете воспользоваться одной из следующих команд:
$ sudo systemctl isolate halt.target
$ sudo systemctl halt
Они работают аналогичным образом.
Для прекращения работы центрального процессора системы достаточно использовать команду halt без каких-либо параметров:
$ sudo halt
В результате работа центрального процессора системы должна завершиться.
Для более корректного прекращения работы системы следует использовать команду halt с параметром --shutdown:
$ sudo halt --shutdown
В этом случае прекращение работы системы будет осуществляться посредством подсистемы ACPI.
Для перезагрузки системы следует использовать команду halt с параметром --reboot:
$ sudo halt reboot
В результате система будет перезагружена.
Для того, чтобы прекратить работу центрального процессора без добавления записи в файл журнала /var/log/wtmp и отправки сообщения всем пользователям системы достаточно использовать параметры --no-wtmp и --no-wall:
$ sudo halt --no-wtmp --no-wall
В результате работа центрального процессора системы будет прекращена без лишних сообщений.