Команда выключения компьютера linux через командную строку

Отключение

Если вы закончили работу с Linux, решение просто отключить его, для это можно использовать синтаксис команды:

shutdown

Например, чтобы немедленно выключить компьютер, вы должны использовать:

Где -h означает остановку, а now — сейчас, что означает, инструкция должна быть выполнена немедленно. Различные задержки могут быть использованы. Например, вместо этого вы можете использовать +5, что скажет компьютеру выполнить процедуру выключения через пять минут.

Если вы хотите использовать message (сообщение), оно будет мигать всем зарегистрированным пользователям:

shutdown -h +5 “Сервер выключается, сохраните свою работу и выйдите из системы.”

Помните, что вы можете найти полный список переключателей для этих команд, введя:

Перезапустить с -r

Альтернативный вариант — использовать команду -r для перезагрузки компьютера. Она используется вместо -h, поэтому, для перезагрузки компьютера или сервера вы можете использовать:

shutdown -r +5 “Сервер перезагружается через пять минут, сохраните свою работу и выйдите из системы.”

Любое запланированное отключение или перезапуск можно отменить, введя команду -c:

Компоненты systemd

Некоторые (не все) составные части systemd:

  • systemd-boot — простой для UEFI;
  • systemd-firstboot — инициализация системных настроек при первой загрузке;
  • systemd-homed — переносимые аккаунты пользователей;
  • systemd-networkd — управление сетевыми настройками;
  • systemd-nspawn — приложение для контейнеризации процессов;
  • systemd-resolved — разрешение сетевых имён;
  • — создание системных пользователей/групп и добавление пользователей в группы при установке пакетов и загрузке системы;
  • systemd-timesyncd — синхронизация системных часов по сети;
  • systemd/Журнал — системные логи;
  • systemd/Таймеры — таймеры для управления событиями и службами, альтернатива cron.

systemd.mount — монтирование

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

systemd расширяет возможности fstab и предлагает дополнительные опции монтирования. Они могут влиять на зависимости юнита монтирования: например, могут гарантировать, что монтирование выполняется только после подключения к сети или после монтирования другого раздела. Полный список опций монтирования systemd (обычно они имеют префикс ) описан в .

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

Автомонтирование GPT-раздела

Требования:

  • Корневой раздел должен быть на одном физическом диске с системным разделом EFI. Автомонтируемые разделы должны быть на одном физическом диске с корневым разделом. Очевидно, монтируемые разделы должны оказаться на одном диске и с ESP.

Совет: Автомонтирование разделов отключается изменением его или установкой атрибута раздела «do not mount» (бит 63), см. .

/var

Для автомонтирования раздела его PARTUUID должен совпадать с хэш-суммой SHA256 HMAC, вычисленной на основании UUID типа раздела. В качестве ключа хэша используется machine ID. Необходимый PARTUUID можно получить командой:

$ systemd-id128 -u --app-specific=4d21b016-b534-45c2-a9fb-5c16e091fd2d machine-id

Примечание: Утилита считывает machine ID из файла , поэтому вычислить PARTUUID до установки системы невозможно.

systemd-sysvcompat

Пакет (зависимость пакета ) содержит традиционный бинарный файл init. В системах под управлением systemd — символическая ссылка на исполняемый файл .

Кроме того, в этом пакете находятся 4 команды SysVinit — , , и . Это символические ссылки на , и их работа обусловлена логикой systemd. Подробнее см. .

systemd-tmpfiles — временные файлы

Утилита systemd-tmpfiles создает, удаляет и очищает непостоянные и временные файлы и каталоги. Она читает конфигурационные файлы из и , чтобы понять, что необходимо делать. Конфигурационные файлы в первом каталоге имеют приоритет над теми, что расположены во втором.

Конфигурационные файлы обычно предоставляются вместе с файлами служб и имеют названия вида . Например, демон Samba предполагает, что существует каталог с корректными правами доступа. Поэтому пакет поставляется в следующей конфигурации:

/usr/lib/tmpfiles.d/samba.conf
D /run/samba 0755 root root

Конфигурационные файлы также могут использоваться для записи значений при старте системы. Например, если вы используете для отключения пробуждения от устройств USB при помощи , вместо этого вы можете использовать следующий tmpfile:

/etc/tmpfiles.d/disable-usb-wake.conf
#    Path                  Mode UID  GID  Age Argument
w    /proc/acpi/wakeup     -    -    -    -   USBE

Подробнее смотрите и .

Примечание: Этот способ может не сработать для установки опций в , поскольку служба systemd-tmpfiles-setup может запуститься до того, как будут загружены соответствующие модули устройств. В этом случае при помощи команды вы можете проверить, имеет ли модуль параметр для установки необходимой опции, и установить эту опцию в в каталоге . В противном случае для установки верных атрибутов сразу при появлении устройства придется написать .

Но что в этом толку?

Вывод yes может быть передан в другие программы или сценарии.

Звучит знакомо? Вы запускаете долгий процесс и уходите, оставляя его работать. Когда вы вернетесь к своему компьютеру, процесс вообще не завершится. В ваше отсутствие он задал вам вопрос и сидит в ожидании ответа «да» или «нет».

Если вы заранее знаете, что все ваши ответы будут положительными («да» или «y») или отрицательными («нет» или «n»), вы можете использовать «да», чтобы предоставить вам эти ответы. Затем ваш долгий процесс будет доведен до завершения без присмотра, и вы получите ответы на все вопросы, которые задает процесс.

3.5. Завершение работы системы Linux

Хотя компьютер, работающий под управлением ОС
Linux, при выполнении некоторых условий можно оставлять работающим
круглосуточно, большинство пользователей персональных компьютеров
привыкли выключать их после завершения работы. Если вы работаете с ОС
Linux, нельзя выключать компьютер простым отключением питания, как
это было под MS-DOS. Дело в том, что в любой момент времени в системе
запущено несколько процессов, вы могли
видеть это, когда выполняли команду

#
ps ax

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

Команда shutdown
может быть выполнена только пользователем
root
(),
так что вы либо должны были войти в систему под этим именем, либо
должны предварительно выполнить команду su,
чтобы приобрести соответствующие права.

Команда shutdownимеет следующий синтаксис:

#
shutdown <options> <time> <warning-massage>

Замечание

Существует
некоторая вероятность того, что запустив команду, вы получите ответ
«command not found». Это значит, что оболочка не знает, где
находится файл программы. В таком случае вам необходимо ввести
команду с указанием полного пути, в данном случае в виде
/sbin/shutdown
-h, поскольку для команды shutdown
файл программы лежит в каталоге /sbin.

Из опций программы
shutdown наиболее часто используются две:

  • -h
     — полная остановка системы (компьютер будет выключен);
  • -r
     — перезагрузить систему.

Параметр time указывает время, когда должна быть
выполнена команда (не обязательно выполнять ее немедленно). Время
можно указать в форме задержки от текущего момента. Например, если вы
хотите, чтобы система остановилась через 5 минут, вводите команду

#
shutdown -r +5

что будет означать «остановить систему через
5 минут и перезагрузиться после того, как работа будет корректно
завершена». Для вас пока наиболее актуальной формой этой команды
будет, скорее всего,

#
shutdown -h 0

когда вы захотите просто выключить компьютер.
Эквивалентом команды

shutdown
-h 0

является команда halt.
При нажатии известной комбинации клавиш <Ctrl>+<Alt>+<Del>
в Red Hat Linux выполняются действия, аналогичные команде

shutdown
-r 0

так что таким образом тоже можно выключить
компьютер, только надо в момент перезагрузки отключить питание.

Предыдущий раздел Следующий раздел

Способ 2 — перезагрузка

В перезагружать — это еще один способ взять под контроль систему Linux и принудительно перезагрузить ее. Возможно, вы захотите использовать этот метод, а не poweroff, поскольку иногда при работе с командой poweroff возникают проблемы.

Чтобы использовать команду перезагрузки, вам необходимо иметь доступ к консоли TTY. Чтобы получить к нему доступ, нажмите Ctrl + Alt + F2 на клавиатуре. Затем, когда появится консоль командной строки, введите «root» в ящик пользователя, чтобы войти в систему с правами root. Или, если вы отключили root-доступ, войдите в систему с традиционной учетной записью.

После входа в систему с учетной записью root воспользуйтесь перезагружать команда для перезапуска системы Linux, фактически заставляя ее выключить и снова включить.

reboot

В перезагружать command также имеет возможность полностью отключить систему с помощью переключателя командной строки. Этот переключатель, известный как «f», будет указывать перезагружать команда для полного выключения системы Linux, а не перезапуска. Чтобы использовать его, введите команду ниже.

reboot -f

Используете традиционную учетную запись пользователя, а не пользователя root? Делать:

sudo reboot

Или завершите работу с помощью:

sudo reboot -f

Те, кто не может использовать режим TTY, должны выполнить следующие команды в сеансе терминала. Обязательно используйте «-F» если вы хотите сделать перезагружать команда принудительного выключения.

Корень:

su -
reboot

Или

sudo reboot

Дистанционное выключение Windows сервера

Начнем с самого сложного. На практике реализовать надежный способ выключения windows машин по сети для меня оказалось сложнее, чем linux. Методов и подходов к решению данной задачи много. Я пробовал разные варианты и остановился на одном, который мне показался самым надежным, он сработал без проблем во всех случаях во время тестирования.

Обязательным условием удаленного выключения сервера является сетевой доступ к нему по rdp. Вы можете находится в локальной сети с ним, подключиться по vpn или пробросить rdp соединение редиректом со шлюза

Не важно, главное попасть в систему по rdp

Принцип работы удаленного отключения следующий:

  1. На компьютере или сервере создается пользователь, которому будет разрешено подключаться по rdp и завершать работу сервера.
  2. В автозагрузке этого пользователя будет скрипт для завершения работы.
  3. Пользователям, которые будут удаленно выключать сервер, дается специально подготовленный rdp клиент, который без всяких запросов будет подключаться нужным пользователем, у которого будет срабатывать скрипт на завершение работы.

Все достаточно просто, но на каждом этапе я сталкивался с проблемами, которые требовали не тривиального решения. Но обо все по порядку.

Итак, идем на север и создаем там простой bat файл следующего содержания:

Сохраняем файл и создаем пользователя, под которым будем выключать сервер. Не забудьте добавить этому пользователю разрешение подключаться по rdp. Если вы выключаете компьютер с десктопной системой, то прав обычного пользователя достаточно. Если же вам надо погасить Windows Server, то пользователя нужно либо сделать админа, либо дать ему права на разрешение выключение сервера через локальную политику безопасности. Живет эта политика по адресу — параметры безопасности — локальные политики — назначение прав пользователей — завершение работы системы.

Вот тут я напоролся на первые неприятности. Я назвал свой скрипт shutdown.bat и очень долго не мог понять, почему он не срабатывает. При вводе команды shutdown с параметрами в консоли все отлично работало, но скрипт не запускался. Оказывается, его нельзя называть таким именем. После того, как переименовал в shut.bat, все отлично заработало. Какая-то нелепая загвоздка, но мне пришлось потратить немало времени, пока я разобрался, в чем тут дело.

Дальше заходим нашим новым пользователем, чтобы создались стандартные папки профиля и кладем скрипт автовыключения сервера ему в автозагрузку — C:Usersshut-userAppDataRoamingMicrosoftWindowsStart MenuProgramsStartup.

Теперь нам нужно настроить автоматический вход пользователя по rdp, чтобы выполнить удаленное завершение работы. Причем пользователь должен заходить на сервер без запроса имени и пароля. Штатными средствами rdp клиента windows это сделать невозможно. Даже если вы сохраните параметры, то при переносе настроек на другой компьютер нужно будет снова вводить пароль. Мне это не подходило.

Я пробовал использовать старую портированную версию rdp 5.2. Это последняя версия, где пароль в зашифрованном виде можно было хранить в файле настроек. Но при переносе этого файла на другой компьютер, все равно выскакивало окно с вводом пароля. Добиться полного автоматизма не получалось.

Но решение было найдено. Существует любопытный проект Remote Desktop Plus, который является надстройкой над rdp. С помощью этой надстройки можно передать параметры в rdp через командную строку, в том числе и имя пользователя с паролем. Мне это полностью подходит. Скачиваем файлик rdp.exe либо с сайта автора проекта, либо с моего. Я скопировал на всякий случай эту очень полезную утилиту. Кладем его в папку и создаем в этой же папке rem-shut.bat файл следующего содержания:

10.10.5.14 адрес удаленного сервера
shut-user пользователь rdp от имени которого будет происходить выключение
pass123 пароль пользователя
640 480 параметры разрешения экрана, можно не указывать

Всего этого достаточно, чтобы выполнить дистанционное завершение работы на windows сервере. Пользователю необходимо передать 2 файла:

  • rdp.exe
  • rem-shut.bat

Важно, чтобы они лежали в одной папке. При запуске батника произойдет подключение rdp пользователя и выполнится скрипт завершения работы

Задача выполнена.

Linux Shutdown Command

19 Января 2020
&vert;

Терминал

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

Синтаксис команды выключения

Прежде чем перейти к использованию команды, давайте начнем с обзора основного синтаксиса.

В выражении команды принимает следующий вид:

  • — Параметры отключения, такие как остановка, отключение питания (опция по умолчанию) или перезагрузка системы.
  • — Аргумент времени указывает, когда выполнять процесс завершения работы.
  • — Аргумент сообщения указывает сообщение, которое будет транслироваться всем пользователям

В последних дистрибутивах Linux это псевдоним, и он доступен в системе только из соображений совместимости.

Как использовать команду

Только root и пользователи с привилегиями могут использовать команду.

При использовании без аргументов команда выключит компьютер.

    Процесс выключения начинается через 1 минуту, что является временным интервалом по умолчанию.

Как завершить работу системы в указанное время 

Аргумент времени может иметь два разных формата. Это может быть абсолютное время в формате и относительное время в формате, где m — это количество минут с этого момента.

В следующем примере будет запланировано отключение системы на 11 часов утра:

    Следующий пример запланирует систему через 10 минут:

Как передать пользовательское сообщение

Чтобы передать собственное сообщение вместе со стандартным уведомлением, введите свое сообщение после аргумента времени.

Следующий пример отключит систему через 30 минут и уведомит пользователей о том, что будет выполнено обновление оборудования:

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

Как перезагрузить систему 

Чтобы перезагрузить систему, используйте аргумент:

Вы также можете указать аргумент времени и пользовательское сообщение:

    Команда выше перезагрузит систему через 5 минут и передаст .

Как отменить запланированное отключение 

Если у вас запланированное завершение работы и вы хотите отменить его, вы можете использовать аргумент:

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

Чтобы узнать больше , посетите страницу справки по завершению работы .

Решение проблем

Неудачно запущенные службы

Следующая команда найдёт все службы, которые не смогли выполнить запуск:

$ systemctl --state=failed

Чтобы определить причину, по которой служба не запустилась, необходимо изучить записи её логов. Подробнее см. .

Диагностика службы

Если какая-либо служба systemd ведет себя не так, как ожидается, и вы хотите получить дополнительную информацию о том, что происходит, присвойте переменной окружения значение . Например, чтобы запустить демон systemd-networkd в режиме отладки:

Добавьте для службы:

Environment=SYSTEMD_LOG_LEVEL=debug

Или, как вариант, пропишите переменную окружения вручную:

# SYSTEMD_LOG_LEVEL=debug /lib/systemd/systemd-networkd

После этого systemd-networkd и следите за журналом службы с помощью опции /.

Время загрузки системы увеличивается с течением времени

После использования некоторые пользователи заметили, что время загрузки системы значительно увеличилось. После использования NetworkManager запускался необычно долго.

Проблема связана с тем, что файл стал слишком большим. При этом также может уменьшаться скорость работы других команд, например, или . Для решения проблемы можно удалить все файлы из каталога журнала (в идеале — сделав где-нибудь резервные копии, хотя бы временно), а затем размер журнала.

systemd-tmpfiles-setup.service не запускается во время загрузки

Начиная с версии Systemd 219, определяет ACL-атрибуты для каталогов в и, следовательно, требует поддержки ACL для той файловой системы, в которой находится журнал.

Отключение emergency mode на удалённой машине

Вам может понадобиться отключить emergency mode на удалённой машине, например на виртуальных машинах Azure или Google Cloud. Это связано с тем, что в случае ухода системы в emergency mode она отключится от сети и лишит вас возможности подключения к ней.

Для отключения этого режима и .

5 практических примеров команды shutdown в Linux

Теперь, когда вы знаете синтаксис команды shutdown, давайте посмотрим, как ее использовать.

Если вы просто используете команду shutdown, она начнет процесс выключения через одну минуту. Поэтому помните, что интервал времени по умолчанию для команды shutdown в одну минуту.

sudo shutdown
Shutdown scheduled for Mon 2018-11-19 23:46:21 UTC, use 'shutdown -c' to cancel.

Ничего не подозревающие пользователи Linux ожидают, что команда shutdown немедленно отключит систему, но когда они увидят такое сообщение, как отметка времени в UTC, они часто путаются.

1. Немедленное выключение системы.

Вам не всегда приходится ждать минуту, чтобы система отключилась. Вы можете немедленно завершить свою систему, указав запланированное время +0 или now.

sudo shutdown now

2. Запланируйте выключение системы

Вы можете запланировать остановку в будущем, указав аргумент времени либо в формате + t, либо в формате hh: mm.

Например, если вы хотите завершить работу системы через 20 минут, вы можете использовать эту команду:

sudo shutdown +20

Если вы хотите завершить работу системы в 3 часа дня, вы можете использовать ее следующим образом:

sudo shutdown 15:00

Излишне говорить, что контрольное время и часовой пояс – это системное время.

Примечание
За пять минут до запланированного времени выключения система не допустит активности входа. Это означает, что новый пользователь не может войти в систему в течение пяти минут после запланированного выключения.

3. Перезагрузка системы командой shutdown

Существует отдельная команда перезагрузки, но вам не нужно изучать новую команду только для перезагрузки системы. Вы можете использовать команду shutdown в Linux для перезагрузки.

Чтобы перезагрузить систему с помощью команды shutdown, используйте параметр -r.

sudo shutdown -r

Поведение такое же, как и команда обычного выключения. Это просто, что вместо выключения системы, она будет перезапущена.

Итак, если вы использовали shutdown -r без каких-либо аргументов времени, она перезагрузку через одну минуту.

Вы можете запланировать перезагрузку так же, как и при выключении.

sudo shutdown -r +45

Вы также можете сразу перезагрузить систему командой shutdown:

sudo shutdown -r now

4. Передача пользовательского сообщения

Если вы работаете в многопользовательской среде, и в систему входит несколько пользователей, вы можете отправить им собственное широковещательное сообщение с командой shutdown.

По умолчанию все зарегистрированные пользователи получат уведомление о запланированном отключении и времени. Вы можете настроить широковещательное сообщение в самой команде shutdown:

sudo shutdown 15:00 "Система будет остановлена для обновления оборудования, пожалуйста, сохраните свою работу"

Вы можете использовать команду shutdown с опцией -k, чтобы инициировать «фальшивое завершение». Он не выключит систему, но широковещательное сообщение будет отправлено всем зарегистрированным пользователям.

5. Отменить запланированное выключение

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

sudo shutdown -c

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

sudo shutdown -c "запланированное выключение было отменено"

Halt vs Power off
Halt (опция -H): завершает все процессы и завершает работу ЦПУ,
Power off (опция -P): Очень похоже на остановку, но также выключает сам блок.

Исторически ранее компьютеры использовали для остановки системы, а затем печатали сообщение, подобное «теперь нормально выключите», а затем компьютеры были отключены с помощью физических переключателей.

В эти дни, прекращение должно автоматически отключить питание системы благодаря поддержки ACPI.

Это были наиболее распространенные и наиболее полезные примеры команды shutdown в Linux. Надеюсь, вы узнали, как отключить систему Linux через командную строку.

Если у вас есть какие-либо вопросы или предложения, не стесняйтесь, дайте нам знать в разделе комментариев.

Заключение

Вот такие нехитрые способы были мной придуманы и реализованы

Тут еще важно обеспечить доступ к локальной сети, в которой живут серверы. В моем случае openvpn позволяет выполнить удаленное выключение компьютеров даже через интернет

Выключение компьютера — действие, с которым обычные пользователи сталкиваются чуть ли не каждый день. Если выключать сервер приходится довольно редко, то обычные, десктопные компьютеры подвержены этой операции очень даже часто. Большинство пользователей выключают linux в графическом интерфейсе системы. В окружении рабочего стола KDE это делается через главное меню, а в Gnome и Unity даже есть специальная кнопка на панели для решения этой задачи.

Но не всегда есть возможность выключить компьютер linux таким образом. Например, если окружение рабочего стола не работает, то больше ничего не остается, кроме того, чтобы выполнять выключение компьютера из командной строки. К тому же выключение компьютера linux через терминал единственно возможный способ для серверов, где нет графического интерфейса. Как вы увидите, этот способ также намного гибче обычного выключения, поскольку вы можете настроить нужное время отключения, или же выключить компьютер, дождавшись завершения работы определенной программы.

Чтобы выключить компьютер Linux используется команда shutdown. Есть также команды poweroff, halt, но они для нестандартных случаев. Обычно же хватает одной только shutdown. Также выключить linux из консоли можно с помощью сочетаний клавиш SysRq. Но сначала давайте рассмотрим синтаксис команды shutdown.

Рейтинг
( Пока оценок нет )
Editor
Editor/ автор статьи

Давно интересуюсь темой. Мне нравится писать о том, в чём разбираюсь.

Понравилась статья? Поделиться с друзьями:
IP-файл
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: