- Процесс выключения Linux
- Синтаксис и опции shutdown
- Последовательность автоматических действий при выключении Linux
- Способ 1: shutdown
- Способ 2: reboot
- Способ 3: poweroff
- Способ 4: Подсистема SysRq
- Детали
- Контроль доступа
- Выключение Linux и питания компьютера
- Выключение Linux из командной строки: примеры
- Как завершить работу системы в указанное время
- Как немедленно выключить систему
- Как передать пользовательское сообщение
- Как отменить запланированное выключение
Процесс выключения Linux
Часто инструмент выключения используется для выключения Linux из терминала. Есть еще команды poweroff, stop, но они для нестандартных случаев. Вы также можете выключить Linux из консоли с помощью горячих клавиш SysRQ. Но сначала давайте посмотрим на синтаксис команды выключения.
Естественно, команда shutdown в Linux или других системах не приводит к автоматическому завершению работы системы и компьютера. Он просто отправляет запрос на выключение в систему инициализации, а затем в ядро. И уже выполняют ряд сложных операций по подготовке и выключению компьютера. Короче, вот они:
- Процессы конечного пользователя.
- Сигнал SIGTERM всем процессам.
- Сигнал SIGKILL всем процессам.
- Монтирование файловых систем в режиме только для чтения.
- Подготавливает внешние устройства к отключению.
- Блокировка пользовательского пространства, чтобы убедиться, что код пользователя больше не выполняется.
- Выключите и выключите большинство внешних устройств.
- Выключите компьютер.
Теперь вы понимаете суть процесса терминации и почему нельзя просто выдернуть шнур питания из розетки. Если это сделать, то компьютер сразу выключится и не будет выполнять все необходимые операции, а это может грозить потерей несохраненных или даже недавно сохраненных данных, повреждением файловой системы и т.д.
Поэтому желательно правильно выключать компьютер при использовании терминации или других специальных инструментов.
Синтаксис и опции shutdown
Синтаксис команды очень прост:
Опции задают параметры деактивации, о них мы поговорим ниже. Время может быть установлено в формате чч:мм в 24-часовом формате. Вы также можете использовать обозначение «+минуты», чтобы указать, через сколько минут вы хотите выключить компьютер с Linux. Также доступна константа Now, указывающая на то, что вам нужно отключить ее прямо сейчас.
Параметр message позволяет указать сообщение, которое будет отображаться в терминале перед завершением работы.
Вот основные параметры инструмента:
- —help — показать справку по программе
- -H, —halt — завершение работы без завершения процессов или перемонтирования файловых систем
- -P, —poweroff — нормальное отключение
- -r, —reboot — перезагрузить
- -k — не выполнять реальных действий, а только отображать сообщение
- —no-wall — выключить компьютер, но не выводить сообщение
- -c — отменить запланированное завершение работы Linux из командной строки
Вот в принципе и все возможности инструмента, их более чем достаточно для такого простого действия. Теперь мы можем перейти к примерам, но сначала давайте посмотрим, что происходит во время запуска Linux.
Последовательность автоматических действий при выключении Linux
Прежде чем приступить к демонстрации доступных команд, остановлюсь подробнее на последовательности автоматически выполняемых действий, которые запускаются после активации соответствующих инструментов. Это позволит вам больше узнать о принципах выключения, а также пригодится в тех случаях, когда для этого будут использоваться определенные опции.
- Начинается завершение всех пользовательских процессов. Например, текстовый редактор или браузер выключен.
- Сигнал SIGTERM абсолютно всем активным процессам. Подробнее о таких сигналах предлагаем прочитать в статье по ссылке ниже.
Следующий сигнал SIGKILL. Он автоматически «убивает» те процессы, которые еще не завершили свою работу. Абсолютно все файловые системы монтируются в режиме только для чтения. Внешнее оборудование готовится к отключению. Пользовательское пространство заблокировано. Это создает гарантию того, что пользователь больше не будет запускать код. Почти все периферийные устройства отключены. Блок питания компьютера отключен.
Теперь вы знаете последовательность всех автоматических действий, которые инициируются при стандартном выключении компьютера.
Способ 1: shutdown
Известная многим команда выключения стала первой из них, о которой мы хотим рассказать в сегодняшнем материале. К этому инструменту применяются дополнительные параметры, поэтому сначала рассмотрим их:
- -H, —stop — завершение работы без предварительного завершения всех процессов;
- -P, —poweroff — выключение системы по умолчанию;
- -r, —reboot — отправить систему на перезагрузку;
- -k — не выполняет никаких действий, а только выводит сообщение о выходе;
- —no-wall — выйти без показа соответствующего сообщения;
- -c — отменить запланированное завершение работы.
Теперь давайте рассмотрим несколько простых способов использования многовариантного выключения.
- Запустите «Терминал» удобным для вас способом, например, через соответствующую иконку в разделе «Приложения» или нажав сочетание клавиш Ctrl+Alt+T.
- В появившейся строке введите sudo shutdown -h now, чтобы немедленно выключить компьютер.
- Это действие выполняется от имени суперпользователя, поэтому его необходимо подтвердить вводом пароля. После этого ПК немедленно выключится.
- Если вы хотите отсрочить выключение, например, на пять минут, вам нужно изменить строку на sudo shutdown -h +5, где +5 — это как раз указанное время, через которое операционная система закончит свою работу.
- ввод команды sudo shutdown -c отменит запланированное завершение работы.
- Используйте sudo shutdown -h 21:00, чтобы установить точное время выключения, измените время на любое другое.
Как видите, ничего сложного в использовании команды shutdown нет. Вам просто нужно изучить синтаксис и понять, в каких ситуациях вы будете использовать этот инструмент. Если оно оказалось нецелесообразным, приступайте к изучению следующих методов.
Способ 2: reboot
Если вы посмотрите на статью выше о перезагрузке Linux через консоль, вы увидите, что команда reboot делает свое дело. К нему применимы дополнительные аргументы, поэтому можно просто выключить систему. Тогда строка ввода должна выглядеть как sudo reboot -p. Введите его и активируйте, чтобы немедленно завершить текущий сеанс.
Способ 3: poweroff
Последняя команда, о которой мы хотим рассказать в сегодняшнем материале, называется poweroff. На самом деле название уже говорит само за себя, и нужно просто набрать это же слово в консоли, чтобы компьютер тут же выключился. Никаких дополнительных опций в этом случае использовать не нужно, да и других функций у инструмента нет, а потому знакомство с ним мы закончим.
Читайте также: Что делать если пропал рабочий стол в Windows 10
Способ 4: Подсистема SysRq
Если вы знакомы с раскладкой клавиш на клавиатуре, то знаете, что есть переключатель под названием «SysRq» (это название пишется не на всех клавиатурах, но всегда находится на клавише Print Screen). В операционных системах Linux есть одноименная подсистема, работающая на уровне ядра. Если удерживать соответствующую комбинацию клавиш, система выключится. Выглядит эта комбинация так: Alt+SysRq+O. Об этом варианте мы решили рассказать в конце сегодняшней статьи, ведь иногда даже консольные команды для выключения компьютера не вводятся.
Сегодня вы познакомились с четырьмя различными способами запуска Linux, которые являются альтернативой виртуальной кнопке, расположенной в графическом интерфейсе. Остается только выбрать лучший метод, чтобы использовать его в нужное время.
Детали
Если отключение запланировано на будущее, будет создан рекомендательный файл /etc/nologin, который заставит такие программы, как login, не допускать новых пользователей. Этот файл создается за пять минут до начала последовательности завершения работы.
Завершение работы удаляет этот файл, если он остановлен до того, как он сможет сигнализировать об инициализации (т.е он был прерван или что-то пошло не так). Он также удаляет его перед вызовом init для изменения уровня запуска.
флаг -f означает «быстрый перезапуск». Это просто создает рекомендательный файл /fastboot, который может быть проверен системой при резервном копировании. Загрузочный rc-файл системы («rc» означает «runcom», что является сокращением от «run command») может проверить наличие этого файла и принять решение не запускать fsck, поскольку система была правильно завершена.
После этого процесс загрузки должен удалить /fastboot.
Флаг -F означает «форсировать fsck». Это создает только рекомендательный файл /forcefsck, который может быть проверен системой при резервном копировании. Загрузочный rc-файл может проверить, присутствует ли этот файл, и решает запустить fsck со специальным флагом «force», чтобы проверить правильность размонтированных файловых систем. Затем процесс загрузки должен удалить /forcefsck.
флаг -n указывает, что shutdown не должен вызывать init, а должен убивать все запущенные процессы. Выход отключит квоты, учет и подкачку, а также размонтирует все файловые системы.
Контроль доступа
Выключение можно вызвать из init при нажатии комбинации клавиш CTRL-ALT-DEL, если в /etc/inittab есть соответствующая запись. Это означает, что любой, у кого есть физический доступ к клавиатуре консоли, может выключить систему.
Чтобы предотвратить это, выключение может проверить, вошел ли в систему авторизованный пользователь. Если shutdown вызывается с аргументом -a (добавьте его к вызову shutdown в /etc/inittab), он проверяет наличие файла /etc/shutdown.allow. Затем он сравнивает логины в этом файле со списком людей, вошедших в виртуальную консоль (из /var/run/utmp).
Только если один из авторизованных пользователей или root вошел в систему, это вступит в силу. В противном случае он напишет сообщение
выход: авторизованные пользователи не вошли в систему
На физической консоли системы. Формат /etc/shutdown.allow — одно имя пользователя в строке. Допускаются пустые строки и строки комментариев (с префиксом #). Этот файл в настоящее время имеет ограничение в 32 пользователя.
Обратите внимание, что если /etc/shutdown.allow отсутствует, аргумент -a игнорируется.
Выключение Linux и питания компьютера
Параметр -H просто устанавливает для переменной среды инициализации INIT_HALT значение HALT, а параметр -P просто устанавливает для этой переменной значение POWEROFF. Сценарий выхода, который вызывает остановку как последнюю вещь в последовательности выхода, должен проверять эти переменные среды и вызывать остановку с правильными параметрами, чтобы эти параметры действительно имели какой-либо эффект.
Выключение Linux из командной строки: примеры
время закрытия 8:00
Запланируйте отключение системы на 08:00.
закрыто 20:00
Запланируйте отключение системы на 8 часов вечера.
shutdown +15 «Обновление оборудования, время простоя должно быть минимальным»
Запланируйте отключить систему через пятнадцать минут. Наряду с обычным уведомлением пользователей о завершении работы системы они получат описательное сообщение об обновлении оборудования.
выключи сейчас
Немедленно выключите линукс
выключить -r сейчас
Немедленно выключите систему и автоматически перезапустите ее.
выключение -P сейчас
Немедленно выключите систему и выключите ее автоматически.
Как завершить работу системы в указанное время
Аргумент времени может иметь два разных формата. Это может быть абсолютное время в формате чч:мм и относительное время в формате +m, где m — количество минут, прошедших с настоящего момента.
В следующем примере запланировано завершение работы системы в 11:00 утра:
судо выключение 11:00
В следующем примере запланировано завершение работы системы через 10 минут:
судо выключение +10
Как немедленно выключить систему
Чтобы немедленно отключить систему, вы можете применить +0 к ее текущему псевдониму:
sudo выключить сейчас
Как передать пользовательское сообщение
Чтобы отправить собственное сообщение вместе с уведомлением о выходе по умолчанию, введите сообщение после аргумента времени.
В следующем примере система выключится через 30 минут и уведомит пользователей о том, что будет выполнено обновление оборудования:
sudo shutdown +30 «обновление оборудования»
Важно отметить, что когда вы указываете пользовательское сообщение на стене, вы также должны указать аргумент времени.
Как отменить запланированное выключение
Если вы запланировали выключение и хотите отменить его, вы можете использовать аргумент -c :
sudo выключение -c
При отмене запланированного завершения работы вы не можете указать аргумент времени, но вы все равно можете транслировать сообщение, которое будет отправлено всем пользователям.
sudo shutdown -c «Отменить перезагрузку»