Перезагрузка сервера через командную строку

Содержание

Как перезагрузить сервер через командную строку?

Перезагрузка сервера через командную строку

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

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

Перезагрузка Linux в графическом интерфейсе

Здесь, как говорится, что может быть проще. Рассмотрим сначала перезагрузку в Ubuntu Unity. Достаточно нажать на кнопку с шестеренкой в правом верхнем углу экрана, и выбрать пункт Выключение:

Затем в открывшимся окне кликнуть по пункту Перезагрузка:

В окружении рабочего стола Gnome, все очень похоже на Unity, а в KDE нужно открыть главное меню, перейти на вкладку выход, и выбрать пункт перезагрузить:

Затем подтвердить перезагрузку.

Перезагрузка Linux в терминале

А здесь уже простор намного шире, существует около десятка команд, которыми можно перезагрузить Linux. Одним нужны root привилегии, другим нет, одни выглядят просто и легко запоминаются, а другие длинные и сложные. Дальше мы рассмотрим их все.

Первая команда перезагрузки Linux, самая распространенная и самая простая:

sudo reboot

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

Утилита shutdown, которая используется для выключения тоже позволяет перезагрузить компьютер для этого нужно передать ей параметр -r. Плюс к тому же можно указать время перезагрузки. Сейчас — 0 или now, через одну минуту +1 через две — +2 и т д:

sudo shutdown -r +1

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

В системах инициализации совместимых с Init Scripts, существовали уровни загрузки системы — 0,1,2,3,4,5,6, уровень 0 — означал выключение, 6 перезагрузку, остальные режимы работы системы нас сейчас не интересуют. Переключаться между уровнями можно командой init. Только опять же нужны права суперпользователя. Таким образом:

sudo init 6

Служба системных сообщений dbus тоже умеет перезагружать компьютер:

/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 

Лучше это сделать заблаговременно, так как этот способ полезен когда система зависла и ни на что не реагирует:

nano /etc/sysctl.conf

kernel.sysrq = 1

Для активации SysRq сочетания зажмите Alt + SysRq и нажмите код клавиши. Для нормальной перезагрузки рекомендуется использовать следующую последовательность: R E I S U B, клавиши нажимать в той же последовательности с интервалом приблизительно секунду.

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

Перед перезагрузкой система ожидает завершения всех процессов, останавливает все сервисы, отключает и монтирует в режиме только чтения файловые системы. Это мы и делаем, нажимая последовательно эти сочетания клавиш. Но если вам нужно перезагрузить систему сейчас не дожидаясь отключения всех процессов, например, сервер, можно сразу отправить сигнал B. Вот так: Alt + SysRq + B.

SysRq можно задействовать и без сочетаний клавиш, записав нужный код операции в файл /proc/sysrq-trigger:

echo b > /proc/sysrq-trigger

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

Удаленная перезагрузка Linux

Если у вас есть доступ к серверу по ssh то можно очень просто удаленно перезагрузить linux с помощью одной из выше приведенных команд, например:

ssh root@remote-server.com /sbin/reboot

Только опять же для этой операции нужно иметь права root на удаленном сервере.

Выводы

Источник: https://losst.ru/perezagruzka-kompyutera-s-linux

Как сделать перезагрузку компьютера через командную строку

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

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

Удаленная перезагрузка компьютера через командную строку

Изначально рассмотрим, как проводится удаленная перезагрузка компьютера через командную строку (правильное название RDP – протокол удаленного рабочего стола). Существует 2-а способа:

  1. Выполняется после обязательного закрытия всех программ и приложений (окон). Активацией клавиш Alt + F4, вызывается меню, в котором выбирается необходимое действие (сон, отключение, завершение сеанса или перезагрузка).
  2. С помощью «Runas» — запуск от имени пользователя и «Shutdown» — обновление ОС. Командный поисковик вызывается одновременным нажатием Win + R (можно в русскоязычном раскладе клавиатуры). В него вписывается значение «Shutdown-r-f-t (временной интервал для отключения, например, 10)-m» или «Runas / Administrator Shutdown-r-f-t\usercomp».

Для проведения обновления данным способом закрывать окна не обязательно. Программа выполнит все необходимые действия в автоматическом режиме самостоятельно после нажатия клавиши Ok.

Перезагрузка компьютера через командную строку Windows

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

Для этого необходимо войти в операционное меню через символ поиска рядом с кнопкой пуск (значок Виндовс) и записать в поисковике аббревиатуру «cmd» латинскими буквами. Но перед этим необходимо определить статус, от имени которого будут выдаваться удаленные команды. Для этого необходимо:

  • Войти в меню настроек – набрать значение «cmd».
  • Нажать на «Командная строка» правой кнопкой мышки.
  • Выбрать значение «Запустить от имени администратора».

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

Итак, проведя вход в командное меню с удаленного компьютерного устройства на правах администратора, используя командный поисковик операционной системы Виндовс, на экране должно отобразиться черное окно меню. В последней графе представленной на нем информации можно будет прочитать следующую надпись «C:User(ник администратора)». Далее пользователь заносит необходимые ему значения вручную, представляем основные из них:

  • Shutdown – полное выключение компьютерного устройства без закрытия запущенных приложений или программ.
  • Shutdown – r – проведение перезагрузки в автоматическом режиме (закрытие окон не требуется).
  • Символ t (время в секундах) – пользователь может самостоятельно установить интервал, через который его запрос должен быть выполнен. Например, Shutdown – r – t (120), перезагрузка произойдет после активации ровно через 120 секунд. Если после символа t цифровое значение будет отсутствовать, программа выполнит действие через 1 минуту (60 секунд), как бы давая время на отмену. Для немедленного исполнения необходимо поставить 0 в значении время на выполнение.

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

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

Читайте также  Выполнить скрипт powershell из командной строки

Как следует из представленного алгоритма действий, пользователю будет достаточно запомнить символику команд (напомним еще раз для закрепления Shutdown – выключение, r – обновление, t – отведенное на выполнение время, a – отмена). И обязательная установка прав администратора, иначе все усилия не смогут привести к желаемым результатам.

Источник: http://grozza.ru/perezagruzka-kompyutera-komandnuyu-stroku/

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

Утилита командной строки shutdown является встроенной командой Windows, которая позволяет перезагрузить, выключить компьютер, перевести его в спящий режим или завершить сеанс пользователя. В этой инструкции мы покажем основные примеры использования команды shutdown в Windows (все рассмотренные команды запускаются в окне Выполнить — Win+R ->, в командной строке cmd.exe или в консоли PowerShell).

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

shutdown xx:yy ]

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

Выключение Windows командой Shutdown

Для выключения ОС Windows и компьютера необходимо использовать команду shutdown с ключом /s.

Перезагрузка Windows

Чтобы перезагрузить компьютер, необходимо добавить параметр /r. После выполнения этой команды Windows корректно перезагрузится.

Источник: https://ferracomp.ru/kak-perezagruzit-server-cherez-komandnuyu-stroku/

Перезагрузка компьютера в Linux

Перезагрузка сервера через командную строку

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

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

Графическая оболочка

На самом деле «проблема» решается не просто, а очень просто. Выйдя на рабочий стол достаточно нажать Alt+F4 чтобы получить стандартный диалог завершения работы.

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

Беда в том, что этого экрана через RDP вы уже не увидите. Да и открытые приложения — это полбеды, хуже, когда систему не дает выключить или перезагрузить зависшее приложение. В этом случае придется искать иные методы.

Командная строка

Как обычно, если графические инструменты не помогают, на помощь администратору приходит командная строка. Для того, чтобы управлять питанием компьютера с ее помощью не надо обладать особыми знаниями, достаточно запомнить одну простую команду. Нажмите Win+R или Пуск — Выполнить и введите следующие команды:

shutdown -s -f -t 0

для выключения

shutdown -r -f -t 0

для перезагрузки.

Разберем ключи команды подробнее:

  • s — выключение компьютера
  • r — перезагрузка
  • f — принудительное завершение мешающих перезагрузке процессов
  • t — время, через которое завершение работы будет выполнено, указывается в секундах через пробел. Если данный параметр не используется команда будет выполнена через 60 секунд.

Утилита PsShutdown от Sysinternals

Если штатные возможности вас по какой-либо причине не устраивают, то можно воспользоваться альтернативой — утилитой PsShutdown от Sysinternals. Разместите скачанный файл в любом удобном месте, лучше всего в одном из указанных в переменной PATH, либо добавьте туда ее расположение, это позволить запускать ее по короткому имени, без указания пути. Синтаксис утилиты похож на синтаксис стандартной, но есть некоторые отличия, так для выключения выполните:

psshutdown -k -f -t 0

а для перезагрузки:

psshutdown -r -f -t 0

Поясним используемые ключи:

  • k — выключение системы
  • r — перезагрузка
  • f — принудительное завершение процессов
  • t — время выполнения команды

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

Кроме того, данная утилита позволяет управлять питанием других ПК по сети. Если честно, то работать по сети умеет и штатная утилита shutdown, достаточно указать ключ:

-m \\computer

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

PsShutdown данного недостатка лишена и позволяет указывать учетные данные для подключения к удаленному ПК, например:

psshutdown \\computer -u username -p password -r -f -t 0

Данная команда выполнит перезагрузку удаленного ПК computer использовав для подключения имя username и пароль password. Следует помнить, что указанный вами пользователь должен иметь права доступа к административному ресурсу ADMIN$. В среде Active Directory этим правом обладает администратор домена, а вот в одноранговой сети могут возникнуть затруднения.

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

Это свидетельствует о том, что данный пользователь не имеет доступа к ресурсу ADMIN$. Чтобы его включить нужно выполнить два условия: включить общий доступ к файлам и принтерам

А затем в ветвь реестра

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\System

добавить параметр типа DWORD с именем

LocalAccountTokenFilterPolicy

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

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

Как видим в этот раз команда отработала успешно.

PowerShell

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

Для выключения используйте команду:

Stop-Computer -Force

А для перезагрузки:

Restart-Computer -Force

Ключ -Force в данном случае аналогичен ключу -f команды shutdown и предполагает принудительное завершение работы мешающих выключению приложений.

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

Stop-Computer -ComputerName computer -Credential username -Force

Где ключи:

  • ComputerName — имя удаленного компьютера, допускается перечисление нескольких имен через запятую
  • Credential — имя учетной записи для аутентификации в удаленной системе

При этом работа через PowerShell более безопасна, так как пароль не вводится открытым текстом и не остается в истории команд. Для аутентификации используются стандартные механизмы ОС.

Как видим, для управления питанием в ОС Windows доступны самые разнообразные инструменты — на любой вкус и цвет. При этом все они доступны внутри терминальной сессии, какой из них использовать — дело личного вкуса и предпочтений.

Источник: https://interface31.ru/tech_it/2015/11/adminu-na-zametku-17-kak-vyklyuchit-ili-perezagruzit-komp-yuter-cherez-rdp.html

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

Abstract: описание видов ребута, рассказ про sysrq, ipt_SYSRQ, ipmi, psu.

Как перезагрузить сервер? — Это вопрос, который обычно задают ну очень начинающим пользователям, которые путаются между halt, shutdown -r, reboot, init 6 и т.д.

Опытный администратор уточнит вопрос: «а что с сервером не так?» Разные виды отказов серверов требуют разных видов ребута — и неверно выбранный вариант приведёт к тяжелейшим последствиям, из которых визит в веб-морду IPMI/DRAC/iLO с целью «доперезагрузить» будет самым лёгким. Самым тяжёлым в моей личной практике была командировка эникейщика в соседний город. С целью «нажать ребут» на одиноко стоящем сервере. В этой статье: что мешает серверу перезагрузиться и как ему помочь. Начнём с теории ребута.

При выключении или перезагрузке сервера менеджер инициализации (в большинстве современных дистрибутивов — systemd, в эксцентричной Ubuntu 14.04 до сих пор upstart, в архаичном хламе — sysv-init) в определённом порядке посылает всем демонам команду «выключись». И большинство демонов (например, СУБД, вроде mysql) знают, как выключаться правильно. Например, закончить все транзакции, сохранить все несохранённые данные на диск и т.д. Для in-memory СУБД, наподобие redis, это и вовсе может быть критичным: не сохранил — потерял.

Старые системы иницализации ждали неограниченно долго каждый из инит-скриптов. Например, если «шутник» добавил вам в «stop» веточку «sleep 3600», то ваш сервер будет перезагружаться час с хвостиком. А если там цифра поболе, или просто программа, которая не хочет завершаться, то и ребут никогда не закончится. Новые системы инициализации (собственно, не стесняемся — остался только systemd) дают некий таймаут (обычно 120 или 180 секунд) на сохранение данных, после чего завершают процесс силком.

Помимо остановки демонов, отмонтируются файловые системы (то есть скидываются все блочные кеши), останавливаются iscsi target'ы (тоже с скидыванием кеша), и т.д. и т.п. При том, что время шатдауна получается неопределённо долгим, оно всё таки конечно. Плюс, есть хоть какая-то надежда на правильное завершение всех демонов, скидывание файловых кешей и т. д. Таким образом, на здоровой системе правильный ответ на вопрос «как перезагрузиться» — выполнить команду reboot.

Читайте также  Запуск рабочего стола через командную строку

В ряде случаев — даже единственный правильный (поправка: если в графическом интерфейсе сделать «reboot», то desktop environment будет думать, что это ребут аварийный — для перезагрузки из графического режима надо использовать «reboot» в интерфейсе DE). Что может пойти не так при «обычном ребуте»? Ну, во-первых, какой-то из процессов-демонов может начать «тупить» — см выше. Во-вторых, может возникнуть проблема с отмонтированием файловых систем.

Считается, что достаточно «убить» все процессы, и отмонтировать диск будет легко — его же никто не использует. Но, это, мягко говоря, не так. Вот потенциальные методы «прибить fs гвоздями так, чтобы не отмонтировалось:

  • fallocate /fs/swap -l 1G;mkswap /fs/swap; swapon /fs/swap
  • dd if=/dev/sda of=/fs/image; kpartx /fs/image
  • losetup —find —show /fs/image

Источник: http://eglite.ru/kak-perezagruzit-server-cherez-komandnuyu-stroku/

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

Перезагрузка сервера через командную строку

Abstract: описание видов ребута, рассказ про sysrq, ipt_SYSRQ, ipmi, psu.

Как перезагрузить сервер? — Это вопрос, который обычно задают ну очень начинающим пользователям, которые путаются между halt, shutdown -r, reboot, init 6 и т.д.

Опытный администратор уточнит вопрос: «а что с сервером не так?» Разные виды отказов серверов требуют разных видов ребута — и неверно выбранный вариант приведёт к тяжелейшим последствиям, из которых визит в веб-морду IPMI/DRAC/iLO с целью «доперезагрузить» будет самым лёгким. Самым тяжёлым в моей личной практике была командировка эникейщика в соседний город. С целью «нажать ребут» на одиноко стоящем сервере. В этой статье: что мешает серверу перезагрузиться и как ему помочь. Начнём с теории ребута. При выключении или перезагрузке сервера менеджер инициализации (в большинстве современных дистрибутивов — systemd, в эксцентричной Ubuntu 14.04 до сих пор upstart, в архаичном хламе — sysv-init) в определённом порядке посылает всем демонам команду «выключись». И большинство демонов (например, СУБД, вроде mysql) знают, как выключаться правильно. Например, закончить все транзакции, сохранить все несохранённые данные на диск и т.д. Для in-memory СУБД, наподобие redis, это и вовсе может быть критичным: не сохранил — потерял. Старые системы иницализации ждали неограниченно долго каждый из инит-скриптов. Например, если «шутник» добавил вам в «stop» веточку «sleep 3600», то ваш сервер будет перезагружаться час с хвостиком. А если там цифра поболе, или просто программа, которая не хочет завершаться, то и ребут никогда не закончится. Новые системы инициализации (собственно, не стесняемся — остался только systemd) дают некий таймаут (обычно 120 или 180 секунд) на сохранение данных, после чего завершают процесс силком. Помимо остановки демонов, отмонтируются файловые системы (то есть скидываются все блочные кеши), останавливаются iscsi target'ы (тоже с скидыванием кеша), и т.д. и т.п. При том, что время шатдауна получается неопределённо долгим, оно всё таки конечно. Плюс, есть хоть какая-то надежда на правильное завершение всех демонов, скидывание файловых кешей и т. д. Таким образом, на здоровой системе правильный ответ на вопрос «как перезагрузиться» — выполнить команду reboot. В ряде случаев — даже единственный правильный (поправка: если в графическом интерфейсе сделать «reboot», то desktop environment будет думать, что это ребут аварийный — для перезагрузки из графического режима надо использовать «reboot» в интерфейсе DE). Что может пойти не так при «обычном ребуте»? Ну, во-первых, какой-то из процессов-демонов может начать «тупить» — см выше. Во-вторых, может возникнуть проблема с отмонтированием файловых систем. Считается, что достаточно «убить» все процессы, и отмонтировать диск будет легко — его же никто не использует. Но, это, мягко говоря, не так. Вот потенциальные методы «прибить fs гвоздями так, чтобы не отмонтировалось:

  • fallocate /fs/swap -l 1G;mkswap /fs/swap; swapon /fs/swap
  • dd if=/dev/sda of=/fs/image; kpartx /fs/image
  • losetup —find —show /fs/image

и т.д. Вкратце: файл может быть занят не только файловой системой, но и ядром. А модуль в ядре может быть занят поиском ответов на смысл жизни и не иметь намерений освобождать ресурс. Чем это чревато? Неотмонтированной файловой системой. Systemd в этой ситуации пытается-пытается, да и бросает (неотмонтированную файловую систему). То есть reboot в этой ситуации будет ОЧЕНЬ долгим, но всё-таки пройдёт. Но это если umount вернёт ошибку. А бывает так, что umount не может завершить операцию из-за того, что что-то не доступно. Например, файл на nfs-сервере. Если какой-то процесс обратится к такому файлу, то его завершить нельзя (даже с помощью kill -9). И в этой ситуации 'reboot' просто завесит сервер. Опять же, наиболее типовые места у systemd „прикрыты“, но вероятность наткнуться на TASK_UNINTERRUPTIBLE ('D' в ps aux) всё равно можно. Что делать? Можно перезагрузиться без синхронизации файловых систем и завершения чего-либо reboot -f. Но он тоже может повиснуть. Про причины ниже, а пока про последствия: все процессы не остановлены и умирают мгновенно, tcp сессии не закрыты, дисковые кеши не сброшены. Однако, ядро всё-таки выполняет какие-то движения в районе ребута (и, возможно, часть кешей будет сброшена). Главное же — в процессе ребута будет задействована большая часть ядра. И это означает, что если ядру поплохело, то мы можем и не вернуться обратно. Вторая, крайне неприятная ситуация: проблемы с файловой системой на / (в корне). Любая попытка сделать ls, grep, и даже 'reboot' вызывает либо зависание консоли, либо ошибку. По той же категории проходят проблемы с libc (включая её удаление), когда на попытку 'reboot' говорят о проблеме линковки и отказываются что-то делать. Или, мы достигли лимита на число pid'ов и все они в 'D' стейт. или ещё какая-то гадость того же калибра, идущая по категории „серверу плохо“. Бывает так, что на сервер осталась открыта только одна консоль (а вторая уже не открывается). Почему? Потому что кто-то что-то подхимичил с драйвером дисков. Или рейд-контроллером. Или ещё чем-то, после чего от '/' остаются только воспоминания в дисковом кеше. Это означает, что у нас есть только команды bash'а (встроенные), которые выполняются без запуска новых процессов.

Существует метод перезагрузки, который не требует выполнения каких-либо исполняемых файлов (т.е. чтения с отсутствующего диска). Это (от рута): echo b >/proc/sysrq-trigger. Файл sysrq-trigger позволяет „нажать“ любую кнопку из SysRq комбинаций (аварийные кнопки ядра). В том числе и SysRq-b, то есть аварийный „reboot“. Часто бывает так, что после нажатия enter даже не успевает появиться перевод строки — сервер уже в ребуте до того, как syscall вернулся. Это самое сильное из софтового, что есть для ребута.

Замечание: кажующееся правильным в этой ситуации „sync, reboot“, т.е. SysRq-s, SysRq-B это ошибка, т.к. после SysRq-S, ядро может попытаться начать общаться с пустым множеством, и, потенциально, упасть в панику или отломать вам последнюю из доступных консолей. Если делается аварийный ребут — он должен быть аварийным

ipt_sysrq

Это всё работает, если у вас есть консоль на сервер. А если логин виснет и открытой консоли нет? Есть модуль ipt_SYSRQ, позволяющий выполнить sysrq запросы по получению определённого сетевого пакета (точнее, по правилу iptables). Работает целиком в ядре, т.е. от FS не зависит. К нему же прилагается команда send_sysrq.

сторож для сторожа

Можно было бы подумать, что на этом „всё“, но бывают ещё более неприятные зависания. Например, зависла сетевая карта. И обычный reboot (в т.ч. через sysrq) не помогает. Вторым примером таких плохой ситуации бывает зависание enclosure, которая залипла на плохом диске и игнорирует все bus reset. Перезагрузка вроде бы всё сбрасывает, а диски недоступны. В этом случае нам нужен power cycle (включить/выключить).

Физически бегать к серверу не интересно, так что можно посмотреть на возможности современных серверов: IPMI. Это встренный микрокомпьютер, позволяющий управлять „большим“ компьютером. Он обычно называется IPMI, DRAC, iLO, etc. Интресующая нас команда: ipmitool chassis power cycle. Она более требовательна к работоспособности системы (должны быть загружены модули ядра, сам ipmitool должен успешно запуститься, ipmi должен быть рабочим и т.д.). Но зато она позволяет передёрнуть по питанию всех.

Точнее, почти всех — если у сервера есть jbod'ы, то до них эта команда не доходит. Но, всё-таки, это очень добротный и хороший ребут. Если ядру совсем поплохело, то команду можно выполнить и удалённо (ipmitool -H ipmi.server.local chassis power cycle)

Читайте также  Проверить флешку на ошибки через командную строку

Ещё одна сложная ситуация — когда завис ipmi. Если система при этом более-менее жива, то можно „перезагрузить ipmi“: ipmitool mc reboot hard. После этого можно будет сделать power cycle для шасси.

Звучит странно, но я несколько раз в жизни „вытаскивал“ сервер в нормальный ребут именно такой последовательностью. (После mc reboot hard надо дать пару минут на загрузку BMC).

Следующая точка „боли“ — это зависающие блоки питания. Да, такое бывает. Баги в прошивке блоков питания исправляют, их нужно прошивать. Разумеется, любые мягкие ребуты (такие как ipmi power cycle) в этой ситуации не работают. Нужно либо физически тыкать кабель, либо передёргивать питание удалённо. В этой ситуации помогает IP-розетка.

Выглядит это примерно так (фрагмент панели управления для servers.com/servers.ru): Очевидно, в этих условиях ребут пройдёт по очёнь жёсткому сценарию, но точно пройдёт.

Заключение

Краткая выжимка

Нормальная работа reboot
проблемы с софтом reboot -f
проблемы с ядром/маунтами/libc echo b>/proc/sysrq-trigger
проблемы с ядром/маунтами/libc и нет открытой консоли ipt_SYSRQ (надо подготовить заранее)
проблемы с ядром/железом ipmitool chassis power cycle
проблемы с ядром/железом без открытой консоли ipmitool -H ipmi.server.local chassis power cycle
проблемы с автономной периферией/БП/ipmi ребут через IP-розетку
  • linux
  • reboot
  • emergency
  • iptables
  • ipmi
  • спасибо за чтение

Хабы:

  • Настройка Linux
  • Системное администрирование
  • Серверное администрирование
  • 20 апреля 2020 в 20:54
  • 5 февраля 2020 в 11:33
  • 6 ноября 2017 в 17:27

Источник: https://habr.com/post/98770/

Перезагрузка Linux через консоль

Перезагрузка сервера через командную строку

Обладатели разных дистрибутивов Linux время от времени сталкиваются с необходимостью перезагрузки операционной системы, что требуется делать после внесения каких-либо изменений в параметры или при появлении неполадок. Обычно поставленная задача осуществляется через графический интерфейс, но этот вариант не всегда получается использовать эффективно. Именно поэтому многие прибегают к вводу терминальных команд, которые и отвечают за подачу сигнала на перезагрузку. Сегодня мы хотим рассказать вам обо всех доступных способах перезапуска Линукс через консоль на примере Ubuntu.

Перезагружаем Linux через консоль

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

Способ 1: Команда reboot

О команде reboot наверняка слышали даже самые начинающие пользователи операционных систем Linux. Вся ее суть как раз и заключается в отправке текущего сеанса на перезагрузку, а дополнительные аргументы при этом не указываются.

  1. Откройте меню приложений и запустите оттуда «Терминал». Для этого вы можете задействовать и другой удобный вариант, например, стандартную горячую клавишу Ctrl + Alt + T.
  2. Действие перезагрузки через reboot обязательно выполняется от имени суперпользователя, поэтому вводимая строка выглядит так: sudo reboot.
  3. Соответственно, потребуется подтвердить учетную запись, написав пароль от нее. Учитывайте, что вводимые символы пароля в консоли никогда не отображаются.

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

Способ 2: Команда shutdown

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

  1. Запустите «Терминал» и укажите sudo shutdown -r +1, где +1 — время, через которое команда будет приведена в действие. В данном случае это одна минута. Укажите 0 или now, если хотите запустить интересующий процесс немедленно.
  2. Команда shutdown тоже зависит от суперпользователя, поэтому для ее активации понадобится ввести пароль.
  3. В новой строке отобразится информация о том, что было создано задание на определенное время. Если вы захотите его отменить, воспользуйтесь командой из этой же строки.

Способ 3: Init Script

Некоторые дистрибутивы поддерживают Init Script, о чем более детально вы можете прочесть в их официальных документациях. Там же будет написано и об основных настройках, связанных с данными скриптами. Сейчас мы опустим все эти моменты, поскольку они не вписываются в рамки этого материала. Расскажем лишь то, что у init есть шесть параметров, где 0 — выключение компьютера, а 6 — перезагрузка сеанса. Именно последний параметр мы и будем применять сейчас. Для его активации в консоли придется ввести sudo init 6. Как вы уже поняли из приставки sudo, это действие тоже осуществляется только через root.

Способ 4: Служба системных сообщений D-Bus

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

Это стандартная утилита Linux, позволяющая программам взаимодействовать друг с другом, а длинная и непонятная команда, отправляющая систему на перезапуск, следующая: /usr/bin/dbus-send —system —print-reply —dest=»org.freedesktop.ConsoleKit» /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Restart.

После ее ввода и активации текущий сеанс сразу же будет завершен.

Способ 5: Горячие клавиши SysRq

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

  1. Запустите «Терминал» и введите там echo 1 > /proc/sys/kernel/sysrq.
  2. Следом откройте файл конфигурации через удобный текстовый редактор, например, sudo nano /etc/sysctl.conf.
  3. Этот файл расположен в системном разделе, поэтому для открытия понадобятся права суперпользователя.
  4. Опуститесь вниз файла и вставьте туда строку kernel.sysrq = 1.
  5. Сохраните настройки и закройте текстовый редактор.
  6. После этого потребуется зажать Alt + SysRq + Код клавиши. Об этом мы детальнее поговорим далее.

Корректный перезапуск осуществляется путем указания определенной последовательности кодов клавиш. Каждый из них имеет следующий вид:

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

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

Способ 6: Удаленная перезагрузка

Некоторые пользователи активно задействуют специальные инструменты по удаленному управлению рабочими столами. Часто в подобных решениях имеются соответствующие команды, позволяющие отправить необходимый компьютер на перезапуск. Например, обратите внимание на следующий параметр SSH: ssh root@remote-server.com /sbin/reboot. Именно по этому принципу происходит перезапуск выбранного удаленного ПК на этом сервере. Если вы используете другие средства управления, прочтите официальную документацию, чтобы получить нужные сведения.

Способ 7: Перезагрузка в Recovery Mode

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

  1. В меню восстановления вас интересует пункт «Продолжить нормальную загрузку» или «Перейти в командный интерпретатор суперпользователя». В первом случае просто начнется старт ОС в обычном режиме, а второй пункт запустит консоль в root.
  2. Если вы запускаете терминал, то подтвердите эту операцию нажатием на клавишу Enter.
  3. Далее остается только ввести подходящую команду, например, reboot, чтобы отправить ПК на перезапуск.

Как видите, существует огромное количество методов, позволяющих быстро перезагрузить систему Linux через консоль. Осталось только понять, какой из этих вариантов следует использовать в определенной ситуации, чтобы соответствовать возникшим условиям, которые требуют перезапуска ОС. Мы рады, что смогли помочь Вам в решении проблемы.
Опишите, что у вас не получилось.Наши специалисты постараются ответить максимально быстро.

Помогла ли вам эта статья?

ДА НЕТ

Источник: https://lumpics.ru/rebooting-linux-from-the-console/