Linux не выключает комп

Не выключается Linux

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

В сегодняшней статье мы рассмотрим такую ошибку, как «не выключается Linux». Разберём, почему может возникнуть такая проблема, методы её отладки и исправления.

Почему не выключается компьютер Linux?

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

Есть несколько путей решения этой проблемы:

  • Во первых, нам необходимо понять в чём именно проблема, какой сервис её вызывает и попытаться её решить;
  • Во вторых, мы можем уменьшить время ожидания от 90 до пяти секунд, для большинства сервисов этого будет вполне достаточно.

А теперь давайте рассмотрим пути решения проблемы.

Как исправить ошибку «не выключается Linux»

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

1. Лог выключения в реальном времени

Первый способ не настолько информативный, но всё же может быть полезным. Для отключения заставки откройте /etc/default/grub и в строке GRUB_CMDLINE_LINUX_DEFAULT замените слова quiet splash на verbose:

Затем перезагрузите компьютер. Сначала вы будете видеть полный лог загрузки, а при выключении вы увидите полный лог выключения. Преимущество этого пути в том, что вы увидите, на какой команде загрузка зависает, и сможете понять, куда копать дальше. Например, часто бывает, что Linux не может выключиться из-за ошибки «a stop job is running for Session c2 of user», т.е. мы не можем завершить сессию пользователя. Ещё выключению могут препятствовать примонтированные удалённые файловые системы.

2. Лог выключения в journalctl

Утилита journalctl занимается обработкой логов в Linux, но есть одна проблема: она записывает журналы только из текущей сессии, при перезагрузке всё стирается. Но это можно исправить. Для этого окройте конфигурационный файл /etc/systemd/journald.conf и замените в нём значение строки Storage=auto на Storage=persistent:

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

sudo journalctl -b -1 -n300

Опция —b позволяет вывести лог загрузки, -1 говорит, что нужно брать не текущую загрузку, а предыдущую, а —n300 отображает только последние 300 строк. Здесь вы можете видеть, что по таймауту была завершена именно сессия session-c1. Мы можем отфильтровать сообщения только по ней:

Читайте также:  Как создать файл образ windows 10

sudo journalctl -b -1 -u session-c1.scope

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

3. Настройка таймаутов в systemd

Если никакое из предыдущих решение не помогло, и в системе просто баг, который не позволяет ей адекватно выключиться, то вы всё ещё можете уменьшить время ожидания до того, как процессу будет отправлен сигнал экстренного завершения. Для этого откройте файл /etc/systemd/system.conf и добавьте туда такие строки:

sudo vi /etc/systemd/system.conf

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

sudo apt install watchdog
sudo systemctl enable watchdog
sudo systemctl start watchdog

Выводы

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

Источник

Убунту не может выключить комп

Я пробовал различные дистрибутивы и за 3 года я просмотрел довольно много их вариаций и выпусков. Есть проблема от выпуска к выпуску. После использования убунту 11.10-12.04.1 при выключении компьютера показыв текстовый экран, пишутся что процессы завершаются, но жесткий диск читается(лампочка на ноуте показывает чтение или запись) и экран продолжает оставаться включенным. Такое возникало само по себе с теч времени либо после нескольких гибернаций ос. Почему комп не может вырубиться? Что ему мешает и как это решить? Выключать приходилось долгим нажатием кнопки ноута. Ноут асус n56sv или n 53 sv. Точн не помню)

У меня такая же беда была, как оказалось, это косяк материнки

попробуй поиграться с suspend mode в bios(S1,S3. ), у меня на неттопе помогла установка не автоматически.

У меня такая же беда была, как оказалось, это косяк материнки

А в чем именно косяк? После переустановки ос проблема решается.. но кажд раз переустанавливать. это не выход..

попробуй поиграться с suspend mode в bios(S1,S3. )

Посмотрю но не помню таких пунктов.

А в чем именно косяк? После переустановки ос проблема решается.. но кажд раз переустанавливать. это не выход..

В том то и дело, что после переустановки какое то время все работало. Еще раз я обновил биос, и мой Debian не запустился, kernel panic. Пробовал разные установочники разных дистрибутивов, в итоге сделал даунгрейд биоса и заработало. К счастью эта мать сгорела (Gigabyte M59), и теперь таких проблем нет

Такая же беда бывает на shutdown. Но не часто и нестабильно. Надежно воспроизвести не выходит. Кроме того, что вообще не понятно, система никак не реагирует на Alt+SysRq+B — вот это уже всегда, а не иногда. Все остальные сочетания работают при этом.

Кнопка выключения на блоке спокойно выключает комп из любого состояния. В том числе и после Alt+SysRq+EI.

Читайте также:  Компьютер выключается при простое windows 10

Ептель.. тока ноут купил. Биос свежий.. еще и его трогать. эх..

У меня ток на стационаре ноу проблем) лан.. подумаю еще.. спс

Расшифровали бы вы мне это сочетания) ну в том состоянии не реагирует, да. Ни на альт керт ф1-ф6.а остальные сочетания что за они. Ну кроме shutdown есть sudo poweroff, sudo halt..ой не оч понятно всетаки про сочетания. Поясните. Буду очень признателен.

Alt+SysRq+B — ну это ребут.
Alt+SysRq+E — завершить все кроме init.
Alt+SysRq+I — убить все кроме init.
Alt+SysRq+S — синхронизировать буферы.
Alt+SysRq+U — перемонтировать все фс в ro.
Alt+SysRq+F — завершить процесс который захавал больше всего оперативы.
Alt+SysRq+K — завершить процесс в текущей консоли (для gui это почти всегда можно рассматривать как убить сеанс) — пользуюсь вместо пугающего сочитания Ctrl+Alt+BS.
Есть и еще какие-то, но я только этими пользуюсь. А, еще Alt+SysRq+R — клавиатура в raw режим (чтобы обходить всякие прослойки драйверы и модификаторы).

Я ламер. SysRq это керт или значок винды на клаве-главн клавиша?

Источник

5 способов выключить компьютер с Linux через терминал

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

Но как ты мог это сделать? Доступны несколько команд для выключения или перезагрузки компьютера Linux через терминал.

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

1. Отключение

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

shutdown [option] [time] [message]

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

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

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

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

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

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

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

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

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

2. Перезагрузка

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

Стандартная команда перезагрузки:

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

Другой вариант – принудительная перезагрузка. Это может быть полезно, если приложение или служба зависли и вам нужно быстро перезагрузиться:

Эта команда принудительно перезагрузит ваш Linux ПК.

3. Остановить

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

Читайте также:  Как удалить feedback assistant mac os

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

4. Poweroff

Вы можете предпочесть терминологию команды poweroff. Это делает то же самое, что и halt, за исключением того, что ввод текста занимает в два раза больше времени.

Однако, кроме использования -f для принудительного отключения питания, вы также можете использовать ключ -w для регистрации вызова перезагрузки системы в /var/log/wtmp. Это потенциально полезный инструмент отладки, как -verbose, который может помочь с проблемами при завершении работы.

5. Аварийный вариант: REISUB

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

Ответ тогда – комбинация клавиатуры. Если вы переключились с Windows, вы, вероятно, знаете, что Ctrl + Alt + Del отображает меню с выключением в качестве опции. Если удерживать дольше, машина выключится автоматически. В то же время на Mac вы просто должны удерживать кнопку питания (опция, которая также работает на оборудовании Windows).

В Linux комбинация клавиш для перезагрузки Alt + Print Screen + B. Однако, если это не работает или существует более сложная проблема, вы можете изменить комбинацию, используя до шести клавиш.

Это известно как REISUB, из-за следующей вынужденной аббревиатуры:

  • unRaw – возвращает управление клавиатурой обратно с сервера X-дисплея.
  • tErminate – посылает сигнал завершения SIGTERM всем процессам для корректного завершения.
  • kIll – как и выше, но сигнал SIGKILL, который вызывает немедленное завершение процессов.
  • Sync – сбрасывает данные на диск.
  • Unmount – перемонтирует все файловые системы в состояние только для чтения.
  • reBoot – что и следовало ожидать.

Чтобы это сработало, вы должны удерживать 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 из командной строки особенно полезны, поскольку их можно использовать на самом компьютере или через удаленный SSH. Поскольку эти команды очень лаконичны, они пригодны для быстрого использования – что может привести к случайной перезагрузке время от времени! К счастью, утилиты molly-guard достаточно, чтобы этого избежать.

Чтобы узнать больше о командах Linux, ознакомьтесь с нашей справочной таблицей.

Источник

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