Выключение astra linux через терминал

Выключение Linux из командной строки

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

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

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

Синтаксис shutdown

Синтаксис команды очень простой:

$ shutdown [опции] [время] [сообщение]

Опции задают параметры отключения, их мы рассмотрим ниже. Время можно задавать в формате чч:мм в 24 часовом формате. Также можно использовать запись +минуты, указывающую через сколько минут от текущего момента нужно выключить компьютер linux. Также доступна константа now, указывающая, что выключать нужно прямо сейчас.

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

Опции

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

Процесс выключения Linux

Естественно, команда shutdown linux или любая другая не самостоятельно завершает работу системы и выключает компьютер. Она всего лишь передает запрос на выключение системе инициализации, а затем ядру. А уже они выполняют ряд сложных операций по подготовке и выключению компьютера. Если кратко, то вот они:

  • Завершение процессов пользователя
  • Сигнал SIGTERM всем процессам
  • Сигнал SIGKILL всем процессам
  • Монтирование файловых систем в режиме только для чтения
  • Подготовка внешних устройств к отключению
  • Блокировка пространства пользователя, чтобы гарантировать, что ни один код пользователя больше не будет запущен
  • Завершение работы и отключение питания большинства периферических устройств
  • Отключение питания компьютера

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

Читайте также:  Образ iso reset windows password

А теперь перейдем к примерам.

Выключение компьютера в Linux

1. shutdown

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

Как видите, используется обычное выключение, и константа времени now, тоесть сейчас.

Теперь попробуем запланировать выключение компьютера linux через пять минут:

Мы запланировали вывод сообщения перед выключением.

Теперь давайте отменим выключение компьютера Linux:

Точно так же мы можем указать точное время выключения, например в девять вечера:

Как я уже говорил, не только команда shutdown linux умеет выключать компьютер, есть еще несколько утилит способных на это. Рассмотрим их тоже.

2. reboot

Команда reboot обычно используется для перезагрузки системы, но она также умеет выключать компьютер. Мы не будем ее подробно рассматривать, потому, что она еще проще команды shutdown. Для выключения нужно задать опцию -p:

3. halt

Эта команда тоже выключает компьютер. Только делает она это очень по-своему. Она не выполняет никаких подготовительных действий перед выключением, а просто отключает питание:

Использование halt может повредить систему

4. poweroff

Это аналог halt, делает в точности то же самое:

5. SysRq

Помните, в начале статьи, я говорил о сочетании клавиш для включения компьютера? Рассмотрим этот вопрос подробнее.

SysRq — это подсистема, реализованная на уровне ядра. Ядро обрабатывает все нажатия клавиш, а с помощью этой подсистемы, оно может принимать от пользователя команды, даже когда система полностью зависла. Основное предназначение этой подсистемы — работа с компьютером в проблемных ситуациях, например, если вы думаете что ваш компьютер заразил вирус, или компьютер завис и его нужно выключить. Для доступа к SysRq используются сочетания клавиш Alt+PrtScr+номер

Самое интересное, что мы можем выполнить безопасное выключение компьютера linux. Для этого зажмите клавиши Alt + PrtScr и поочередно нажимайте:

  • R — разблокировать клавиатуру
  • E — послать всем процессам сигнал SIGTERM
  • I — послать всем процессам сигнал SIGKILL
  • S — перенести все данные из кеша файловых систем на диск
  • U — перемонтировать файловые системы только для чтения
  • B — перезагрузить

Также вместо всего этого можно воспользоваться сочетанием клавиш Alt+PrtScr+O, в таком случае, вся процедура будет выполнена автоматически, эта команда поддерживается не всеми ядрами.

Выводы

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

Источник

Консольные команды для выключения Linux

Последовательность автоматических действий при выключении Linux

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

  1. Начинается завершение всех пользовательских процессов. Например, выключается текстовый редактор или браузер.
  2. Подается сигнал SIGTERM абсолютно всем активным процессам. Более детально о таких сигналах мы предлагаем прочесть в статье по указанной далее ссылке.
  • Следующим идет сигнал SIGKILL. Он автоматически «убивает» те процессы, которые до сих пор не завершили свою работу.
  • Абсолютно все файловые системы монтируются в режим «Только для чтения».
  • Подготавливается внешнее оборудование для отключения.
  • Блокируется пользовательское пространство. Это создает гарантию, что юзер больше не запустит ни один код.
  • Отключаются практически все периферийные устройства.
  • Прекращается подача питания к компьютеру.
  • Читайте также:  Linux and samsung galaxy

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

    Способ 1: shutdown

    Известная многим команда shutdown стала первой из тех, о которых мы хотим рассказать в рамках сегодняшнего материала. К этой утилите применимы дополнительные опции, поэтому давайте сначала остановимся на них:

    • -H, —halt — отключение питания без предварительного завершения всех процессов;
    • -P, —poweroff — стандартное отключение системы;
    • -r, —reboot — отправка системы на перезагрузку;
    • -k — не выполняет никаких действий, а только выводит на экран сообщение о выключении;
    • —no-wall — отключение без вывода соответствующего сообщения;
    • -c — отмена запланированного отключения.

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

      Запустите «Терминал» удобным для вас образом, например, через соответствующий значок в разделе «Приложения» или путем нажатия горячей клавиши Ctrl + Alt + T.

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

    Если вы хотите отсрочить отключение, например, на пять минут, придется изменить строку на sudo shutdown -h +5 , где +5 как раз и является указанным временем, через которое операционная система завершит свою работу.

    При вводе команды sudo shutdown -c произойдет отмена запланированного выключения.

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

    Способ 2: reboot

    Если вы обратите внимание на указанную по ссылке выше статью по перезагрузке Linux через консоль, то увидите, что позволяет справиться с этой задачей команда reboot. Для нее применимы дополнительные аргументы, позволяющие просто отключить систему. Тогда строка ввода должна обрести вид sudo reboot -p . Введите ее и активируйте, чтобы сразу же завершить текущий сеанс.

    Способ 3: poweroff

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

    Способ 4: Подсистема SysRq

    Если вы знакомы с расположением клавиш на клавиатуре, то знаете, что там располагается переключатель с названием «SysRq» (его название прописано не на всех клавиатурах, но при этом он всегда находится на клавише Print Screen). В операционных системах Linux существует одноименная подсистема, работающая на уровне ядра. Если вы зажмете соответствующую комбинацию клавиш, система завершит свою работу. Выглядит эта комбинация так: Alt + SysRq + O. Мы решили рассказать об этом варианте в конце сегодняшней статьи, поскольку иногда не получается ввести даже консольные команды, чтобы выключить компьютер.

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

    Читайте также:  Бывает ли windows 10 максимальная

    Помимо этой статьи, на сайте еще 12315 инструкций.
    Добавьте сайт Lumpics.ru в закладки (CTRL+D) и мы точно еще пригодимся вам.

    Отблагодарите автора, поделитесь статьей в социальных сетях.

    Источник

    выключить комп через терминал(shutdown) без sudo. как ?

    приветствую. пишу для себя программку для выключения/перезагрузки системы по таймеру(аналог EasyShutdown под linux), ребутить систему решил через библиотеку subprocess(python) которая запускает скрипты bash в python’e, но не знаю как сделать, что бы можно было перезагрузить машину без su/sudo.

    Можно через dbus и ConsoleKit

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

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

    спасибо, буду пробовать, хотя не до конца понимаю что это за кусок кода.

    зафига тебе выключать чужие машины

    нее, ты не так понял 🙂 просто что бы программка работала на разных компьютерах(под разными учетными записями), а не только у меня(потому-что я прописал права доступа)

    ConsoleKit — это такой демон, обслуживащий пользовательские сессии. Им можно управлять через dbus. Только вот его вроде выпиливают сейчас повсюду. Если у тебя systemd, то фокус не прокатит. Может заглянут знатоки и подскажут, как это сделать через logind.

    А пароль кто будет вводить?

    которая запускает скрипты bash в python’e

    может сразу на баше написать?

    да, прочитал о ConsoleKit так там в разных версиях может по разному себя вести, bash не катит, т.к. это будет аплет для unity с менюшками на Gtk, даже не знаю как быть, хотелось бы универсальность программки, что бы под разными версиями запускался системы/пакетов.

    Вроде бы с правами надо разбираться через polkit.

    :NOPASSWD — настраивается в /etc/sudoers.

    Стрёмно как-то давать беспарольный sudo даже на одну команду. Хотя может это паранойя. Но всё равно ТСу это не подходит.

    если ты делаешь утилиту для других людей, утилиту (работающую «из коробки») для которой нужны повышенные привелегии, такие как «вылючение компьютера» или «стереть все файлы из /home/» (шутка) — то просто укажи в документации к утилите это требование.

    . мол — «запускайте от root или через sudo».

    второй вариант: раздели свою утилиту на две слабосвязанные части. одна часть это сервисный-юнит (запускаемый через systemd и висящий в системе постоянно), а вторая часть это клиентская часть. клиентская часть — будет связываться со своей серверной частью через dBus, например.

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

    спасибо, буду пробовать, хотя не до конца понимаю что это за кусок кода.

    Тогда уж не вызывать bash из python только для того, чтобы дернуть dbus-send, а использовать dbus-python.

    Если systemd, то всё просто

    poweroff или systemctl poweroff . По дефолту разрешения таковы, что единственный активный пользователь сможет вырубить машину без получения прав суперпользователя.

    В случае с systemd такой демон уже написали и называется он logind 🙂

    Источник

    Оцените статью