Linux выключение из командной строки
Ни одна операционная система не идеальна. Даже если это так, могут быть проблемы с драйверами и приложениями. Linux не является исключением. Несмотря на то, что он более стабилен, чем Windows, вероятно, придет время, когда вам нужно перезагрузить компьютер с Linux.
Но как ты мог это сделать? Доступны несколько команд для выключения или перезагрузки компьютера Linux через терминал.
Давайте посмотрим на них по очереди и рассмотрим, как и когда следует использовать эти команды.
1. Отключение
Если вы закончили работу с Linux, решение просто отключить его, для это можно использовать синтаксис команды:
shutdown [option] [time] [message]
Например, чтобы немедленно выключить компьютер, вы должны использовать:
shutdown -h +5 "Сервер выключается, сохраните свою работу и выйдите из системы."
Помните, что вы можете найти полный список переключателей для этих команд, введя:
Перезапустить с -r
shutdown -r +5 "Сервер перезагружается через пять минут, сохраните свою работу и выйдите из системы."
Любое запланированное отключение или перезапуск можно отменить, введя команду -c:
2. Перезагрузка
Поскольку команда shutdown имеет опцию перезапуска, неудивительно, что команда reboot имеет опцию shutdown.
Стандартная команда перезагрузки:
Это предложит вашему компьютеру выключиться и снова включиться. Однако, если вы хотите выключить устройство, то ключ -p будет работать:
Эта команда принудительно перезагрузит ваш Linux ПК.
3. Остановить
Мы уже видели переключатель -h выше, но остановка может использоваться как команда сама по себе. Это приведет к немедленному отключению компьютера с помощью простого четырехбуквенного слова:
Переключатель -f также можно использовать с остановкой, но результаты противоречивы, и может привести к проблемам стабильности системы.
4. Poweroff
Вы можете предпочесть терминологию команды poweroff. Это делает то же самое, что и halt, за исключением того, что ввод текста занимает в два раза больше времени.
Однако, кроме использования -f для принудительного отключения питания, вы также можете использовать ключ -w для регистрации вызова перезагрузки системы в /var/log/wtmp. Это потенциально полезный инструмент отладки, как -verbose, который может помочь с проблемами при завершении работы.
5. Аварийный вариант: REISUB
Все вышеперечисленные команды можно использовать в ситуациях, когда система работает без проблем. Но что делать, если компьютер или сервер зависает и не может быть перезагружен приемлемым способом?
В Linux комбинация клавиш для перезагрузки Alt + Print Screen + B. Однако, если это не работает или существует более сложная проблема, вы можете изменить комбинацию, используя до шести клавиш.
Это известно как REISUB, из-за следующей вынужденной аббревиатуры:
Чтобы это сработало, вы должны удерживать Alt + Print Screen, а затем, поочерёдно нажимать клавиши: R E I S U B, в этом же порядке. Задержка между каждым нажатием должна составлять 1-2 секунды. Это необходимо для того, чтобы дать немного времени на выполнение всех вышеперечисленных процессов. Обратите внимание, что этот метод обычно не работает на компьютерах с архитектурой ARM.
Помогите, я случайно выключил свой Linux компьютер или сервер!
Мы видели, как отменить команду выключения или перезапуска. Однако бывают ситуации, что вы запускаете команду выключения, когда выполняется жизненно важный процесс, особенно на удаленном сервере. Обойти это можно, установив molly-guard, который может отменить отключение, проверив определенные параметры.
Например, есть скрипт, который проверяет наличие сессий SSH. Если вы отправите команду перезагрузки, остановки или выключения molly-guard потребует имя хоста, который вы собираетесь закрыть.
Для этого установите molly-guard в терминал:
sudo apt-get install molly-guard
Поскольку molly-guard работает в фоновом режиме, он обнаружит такую команду, как poweroff, и сообщит, что был обнаружен сеанс SSH. Затем вы можете ввести имя хоста сервера для подтверждения выключения или нажать Ctrl + C для отмены. Полезно!
Чтобы узнать больше о командах Linux, ознакомьтесь с нашей справочной таблицей.
Выключение компьютера - действие, с которым обычные пользователи сталкиваются чуть ли не каждый день. Если выключать сервер приходится довольно редко, то обычные, десктопные компьютеры подвержены этой операции очень даже часто. Большинство пользователей выключают linux в графическом интерфейсе системы. В окружении рабочего стола KDE это делается через главное меню, а в Gnome и Unity даже есть специальная кнопка на панели для решения этой задачи.
Но не всегда есть возможность выключить компьютер linux таким образом. Например, если окружение рабочего стола не работает, то больше ничего не остается, кроме того, чтобы выполнять выключение компьютера из командной строки. К тому же выключение компьютера linux через терминал единственно возможный способ для серверов, где нет графического интерфейса. Как вы увидите, этот способ также намного гибче обычного выключения, поскольку вы можете настроить нужное время отключения, или же выключить компьютер, дождавшись завершения работы определенной программы.
Процесс выключения Linux
Часто для выключения Linux из терминала используется утилита shutdown. Есть также команды poweroff, halt, но они для нестандартных случаев. Также выключить linux из консоли можно с помощью сочетаний клавиш SysRQ. Но сначала давайте рассмотрим синтаксис команды shutdown. Естественно, команда shutdown в Linux или любая другая не самостоятельно завершает работу системы и выключает компьютер. Она всего лишь передает запрос на выключение системе инициализации, а затем ядру. А уже они выполняют ряд сложных операций по подготовке и выключению компьютера. Если кратко, то вот они:
- Завершение процессов пользователя.
- Сигнал SIGTERM всем процессам.
- Сигнал SIGKILL всем процессам.
- Монтирование файловых систем в режиме только для чтения.
- Подготовка внешних устройств к отключению.
- Блокировка пространства пользователя, чтобы гарантировать, что ни один код пользователя больше не будет запущен.
- Завершение работы и отключение питания большинства периферических устройств.
- Отключение питания компьютера.
Теперь вы понимаете суть процесса выключения и то почему нельзя просто выдернуть шнур питания с розетки. Если это сделать, компьютер отключится моментально и не выполнит всех необходимых операций, а это может грозить потерей не сохраненных или даже недавно сохраненных данных, повреждением файловой системы и т д. Поэтому желательно выключать компьютер правильно с помощью shutdown или других специальных утилит.
Синтаксис и опции shutdown
Синтаксис команды очень простой:
Вот основные опции утилиты:
Вот в принципе и все опции утилиты, их больше чем достаточно для такого простого действия. Теперь можно переходить к примерам, но сначала давайте рассмотрим, что же происходит во время включения Linux.
Выключение компьютера в Linux
1. shutdown
Самая простая и самая часто используемая команда выключения компьютера linux, отключит компьютер немедленно:
sudo shutdown -h now
Как видите, используется обычное выключение, и константа времени now, тоесть сейчас.
Теперь попробуем запланировать выключение компьютера linux через пять минут:
sudo shutdown -h +5 "Компьютер будет выключен через 5 минут"
sudo shutdown -c
Точно так же мы можем указать точное время выключения, например в девять вечера:
sudo shutdown -h 21:00
Как я уже говорил, не только команда 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, в таком случае, вся процедура будет выполнена автоматически, эта команда поддерживается не всеми ядрами.
6. Графический интерфейс
Выключить компьютер в графическом интерфейсе ещё проще. Для этого кликните по иконке выключения в правом верхнем углу, а затем выберите Выключить/Завершить сеанс, затем Выключение.. и снова Выключить:
Выводы
Теперь вы знаете все что нужно, о том, как выключить Linux через терминал. Если вас застигнет врасплох ошибка или зависание компьютера, вы знаете что делать. Если остались вопросы - пишите в комментариях!
Эта статья ориентирована на самых новичков в Linux ну и тех кого интересует как перезагрузить Linux из консоли. Для меня перезагрузить компьютер в терминале или с помощью графического интерфейса это элементарно, но это база, не все новички ее знают и надо об этом написать.
Сегодня мы рассмотрим такие вопросы, как команда перезагрузки Linux из консоли, перезагрузка удаленно, и непосредственно перезагрузка в графическом интерфейсе. Начнем, пожалуй, с обычной перезагрузки системы.
Перезагрузка Linux в графическом интерфейсе
Здесь, как говорится, что может быть проще. Рассмотрим сначала перезагрузку в Ubuntu Unity. Достаточно нажать на кнопку с шестеренкой в правом верхнем углу экрана, и выбрать пункт Выключение:
Затем в открывшимся окне кликнуть по пункту Перезагрузка:
В окружении рабочего стола Gnome, все очень похоже на Unity, а в KDE нужно открыть главное меню, перейти на вкладку выход, и выбрать пункт перезагрузить:
Затем подтвердить перезагрузку.
Перезагрузка Linux в терминале
А здесь уже простор намного шире, существует около десятка команд, которыми можно перезагрузить Linux. Одним нужны root привилегии, другим нет, одни выглядят просто и легко запоминаются, а другие длинные и сложные. Дальше мы рассмотрим их все.
Первая команда перезагрузки Linux, самая распространенная и самая простая:
Как видите, утилите нужны права суперпользователя. После нажатия Enter компьютер сразу уйдет в перезагрузку.
Утилита shutdown, которая используется для выключения тоже позволяет перезагрузить компьютер для этого нужно передать ей параметр -r. Плюс к тому же можно указать время перезагрузки. Сейчас - 0 или now, через одну минуту +1 через две - +2 и т д:
sudo shutdown -r +1
Перезагрузка Linux будет выполнена через минуту после ввода команды.
В системах инициализации совместимых с Init Scripts, существовали уровни загрузки системы - 0,1,2,3,4,5,6, уровень 0 - означал выключение, 6 перезагрузку, остальные режимы работы системы нас сейчас не интересуют. Переключаться между уровнями можно командой init. Только опять же нужны права суперпользователя. Таким образом:
/usr/bin/dbus-send --system --print-reply --dest="org.freedesktop.ConsoleKit" /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Restart
Тут уже не нужны права суперпользователя. Это были обычные способы перезагрузки Linux, но есть еще один, нестандартный или даже два. Это магические SysRq клавиши. Ядро Linux отслеживает нажатие определенных сочетаний клавиш, и в ответ на них выполняет нужные действия. Сначала включаем поддержку sysrq:
echo 1 > /proc/sys/kernel/sysrq
Лучше это сделать заблаговременно, так как этот способ полезен когда система зависла и ни на что не реагирует:
Для активации SysRq сочетания зажмите Alt + SysRq и нажмите код клавиши. Для нормальной перезагрузки рекомендуется использовать следующую последовательность: R E I S U B, клавиши нажимать в той же последовательности с интервалом приблизительно секунду.
- R - возвращает управление клавиатурой если Х сервер был завершен некорректно;
- E - ядро посылает всем процессам, кроме init сигнал SIGTERM;
- I - отправляет всем процессам, кроме init сигнал SIGKILL;
- S - ядро проводит синхронизацию файловых систем, все данные из кэша переносятся на жесткий диск;
- U - перемонтирует все файловые системы в режим только чтение;
- B - немедленная перезагрузка, без синхронизации, и дополнительных приготовлений.
SysRq можно задействовать и без сочетаний клавиш, записав нужный код операции в файл /proc/sysrq-trigger:
echo b > /proc/sysrq-trigger
Система будет перезагружена как есть, без остановки сервисов и подготовки файловых систем, поэтому не сохраненные данные могут быть потеряны, а файловая система повреждена.
Удаленная перезагрузка Linux
Если у вас есть доступ к серверу по ssh то можно очень просто удаленно перезагрузить linux с помощью одной из выше приведенных команд, например:
Только опять же для этой операции нужно иметь права root на удаленном сервере.
Выводы
Теперь вы знаете как выполняется перезагрузка linux, вы даже знаете что делать когда система зависла и как перезагрузить сервер по ssh. Если у вас остались вопросы, спрашивайте в комментариях!
Рассмотрим, как перезагрузить или выключить компьютер из командной строки. Я пользуюсь этим, когда при установке какого-нибудь драйвера или при сильной нагрузке на процессор, интерфейс перестает реагировать на мои действия (хотя это случается крайне редко). Можно убить «прожорливый» процесс через командную строку, но не всегда известно какой это процесс, поэтому быстрое решение это перезагрузка компьютера.
Перезагружаем компьютер
Я делаю так. Перехожу в консоль нажатием сочетания клавиш Ctrl+Alt+F1. В консоли вы должны сначала ввести свой логин и пароль (при вводе пароля символы не отображаются). И выполняю команду:
Вам снова нужно будет ввести пароль администратора и нажать Enter. Начнется перезагрузка компьютера.
Для перезагрузки компьютера можно также использовать команду shutdown, для этого нужно использовать ключ -r:
Выключаем компьютер
Чтобы выключить компьютер из командной строки, то нужно выполнить команду:
Также компьютер можно выключить выполнив команду:
А также можно использовать:
Смотрите также
Новое в галерее
Новые комментарии
Комментарии
спасибо за инфу. инода было нужно что-то подобное. я только знакомлюсь с миром unix и видимо поэтому такой простой вопрос " а зачем такое разнообразие комманд"? почему бы не ограничиться одной командой для одного действия? спасибо. Постоянная ссылка на комментарий Родительский комментарийМесье Гугли тотчас же отвечает на этот вопрос. Если намереваетесь и дальше осваивать линукс, то рекомендовал бы познакомится с ним.
Постоянная ссылка на комментарий Родительский комментарий Постоянная ссылка на комментарий Родительский комментарий так reboot и не команда - это линк на команду halt. А shutdown и halt - это разные команды, выполняющие похожие действия (приводящие к одному результату в конкретном случае). Для примера: Ведь на самом деле на компьютере не нужна команда move (mv) - её можно заменить копированием с последующим удалением оригинала (так оно возможно и есть), но для человека проще сделать "перенести", чем "копировать", а потом "удалить". Постоянная ссылка на комментарий Родительский комментарийНет, shutdown и halt - команды разные совсем. Ничего общего.
]$ shutdown --help
shutdown: you must be root to do that!
Usage: shutdown [-akrhPHfFnc] [-t sec] time [warning message]
-a: use /etc/shutdown.allow
-k: don't really shutdown, only warn.
-r: reboot after shutdown.
-h: halt after shutdown.
-P: halt action is to turn off power.
-H: halt action is to just halt.
-f: do a 'fast' reboot (skip fsck).
-F: Force fsck on reboot.
-n: do not go through "init" but go down real fast.
-c: cancel a running shutdown.
-t secs: delay between warning and kill signal.
** the "time" argument is mandatory! (try "now") **
Как видно из выхлопа хэлпа, это команда служит для выключения, перезагрузки и прочих извращений, в том числе и есть возможность задания времени до выполняемого действия или времени срабатывания и текста, который будет выводиться в предупреждении при приближении к сему знаменательному событию.
Читайте также: