Не выключается 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. После того, как загрузка завершиться, вы можете посмотреть лог с помощью такой команды:
Опция —b позволяет вывести лог загрузки, -1 говорит, что нужно брать не текущую загрузку, а предыдущую, а —n300 отображает только последние 300 строк. Здесь вы можете видеть, что по таймауту была завершена именно сессия session-c1. Мы можем отфильтровать сообщения только по ней:
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 более комфортной.
Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.
Зависает комп при выключении или перезагрузке
У меня уже почти месяц не выключается и не перезагружается нормально комп. Всякий раз, когда я выбираю выключение компа или перезагрузку (неважно, в консоли набираю соответствующие команды или в меню GNOME), доходит до определенной строчки и комп попросту висит. Его можно только вырубить, удерживая кнопку выключения или нажатием на Reset для перезагрузки. Вот фото. Достало неимоверно. Что самое удивительное, на работе стоит такая же система, и там этой проблемы нет.
Пробовал откатываться на LTS-версию ядра, не помогло. Пробовал отключить lvmetad по совету гугла — тоже не помогло.
У меня уже почти месяц не выключается и не перезагружается нормально комп.
Ну увеличил я лимит до 10 тысяч, но ничего не поменялось, комп все так же зависает с тем же логом.
Ноль информации по теме. Очередной 5-звездочный набивает рейтинг.
Что за железо (мать, проц, видео)? Какое ядро, какие драйвера, какие параметры ядра, драйверов? Помогает ли grep -A 15 ‘reboot=’ /usr/src/linux/Documentation/admin-guide/kernel-parameters.txt ?
в консоли набираю соответствующие команды
‘shutdown -h now’ и ‘reboot’, разумеется.
А пробовал просто комп оставить, выключится в итоге?
Тоже такая шляпа на раче была, читал инет, писали что это системд что то там мутит. И как то связано это с ватчдогом.
Попробовал оставить, и правда, сам выключился где то через 5 минут. Потом как то забил, просто отключался и уходил. Рано или поздно оно вырубалось. А через время, начало выключатся нормально. А так, ситуация та же. Рач, гном.
Не прикидывайся шлангом, ренегат сбежавший с генту. Твое сообщение — подтверждение, что ты занимаешься тупым спамом.
systemctl poweroff \ systemctl reboot
По его фотке видно, что выключением и так управляет systemd. И это логично, потому что reboot и shutdown — это симлинки на systemctl.
у меня раньше было забито на горячие просто poweroff/reboot, в какой то момент это перестало работать и я добавил systemctl — помогло.
turtle_bazon ★★★★★ ( 20.10.19 23:45:21 MSK )
Последнее исправление: turtle_bazon 20.10.19 23:45:40 MSK (всего исправлений: 1)
вы предлагаете одно говно. у меня в арчике переодически такие же проблемы всплывают. сначала помогло отключение lvm2. потом отказ от экспериментов с i915.fastboot=1. теперь переодически не выключается изза xorg-git и nvidia prime. этот пятизведный генерал-капитан не дал никакой инфы, а вы тут пытаетесь угадать.
Поставил ShutdownWatchdogSec=0, но не помогло.
Судя по картинке, все этапы выключения завершились успешно и оставалось только физическое отключение питания. Но видимо из-за проблем с ACPI этого не произошло, отсюда и сообщение от watchdog. Но это как предположение для ресёрча.
Записал на флешку установочный образ Solus и проверил. Там с выключением и перезагрузкой все в порядке.
Там точно такой же набор модулей ядра и такое же ядро?
Иначе, это наблюдение ни чего не даёт.
«Я за бан», подход блондинки с фото.
Нет, конечно. Ядро там 4.20 (именно на live флешке на текущий момент). Набор модулей, думаю, тоже отличается. Каждый дистрибутив готовит ядро по-своему.
сука да напиши ты уже параметры ядра
Конфиг ядра. Самый обычное дефолтное арчевское ядро. Я ничего в нем не менял. В параметрах ядра тоже ничего не дописывал.
GRUB_CMDLINE_LINUX_DEFAULT="" GRUB_CMDLINE_LINUX=""
ls -l /usr/lib/modules/$(uname -r)/kernel/drivers/acpi
Именно. Только проблемы с ACPI у системдика. И длится это уже очень давно.
попробуй добавить хук shutdown в самый конец списка хуков в mkinitcpio.conf (и не забудь перегенерить initramfs).
Приду домой, сделаю и напишу.
Я тут кое-что еще обнаружил. Я повторно установил linux-lts, nvidia-dkms и попробовал загрузиться с LTS ядром. Пишет то же самое, перезагружаться самостоятельно не хочет, но появилась одна маленькая подробность. Если актуальное ядро просто висит как на фото в 1-м посте, то LTS-ядро вскоре после зависания (секунд через 30) начинает циклически выдавать такую надпись. Именно циклически, т.е каждые 10-15 секунд пробегают одни и те же строчки. При этом на нажатие каких-либо клавиш он не реагирует, приходится так же перезагружать ресетом или выключать кнопкой выключения компа. Что это может означать?
И еще одна маленькая подробность. Записал на флешку свежий Live CD арча и загрузился с нее. Прекрасно перезагружается и выключается.
Пробовал откатывать нвидиевские дрова до более ранних версий — не помогает. То есть это не ядро и не видеодрова.
Rinaldus ★★★★★ ( 23.10.19 12:26:11 MSK )
Последнее исправление: Rinaldus 23.10.19 12:27:18 MSK (всего исправлений: 1)
Попробуй поставить винду. Если она также не выключается — 100% мать. У меня так было