Abstract

Сообщение «systemd system is about to suspend» означает, что система готовится перейти в режим низкого энергопотребления. Разбираемся, как это предотвратить — от маскировки целей systemd до отладки ACPI-событий.


Маскировка целей сна и гибернации

Замаскируем цели systemd, отвечающие за спящий режим и гибернацию:

sudo systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target

Это создаёт символические ссылки на /dev/null — цели становятся недоступны. Проверим статус:

sudo systemctl status sleep.target suspend.target hibernate.target hybrid-sleep.target

Отмена маскировки

Если понадобится снова включить спящий режим: sudo systemctl unmask sleep.target suspend.target hibernate.target hybrid-sleep.target


Настройка logind.conf

Отредактируем конфигурацию systemd-logind:

sudo nano /etc/systemd/logind.conf

Добавим или изменим строки:

[Login]
HandleLidSwitch=ignore
HandleLidSwitchDocked=ignore
IdleAction=ignore

Перезапустим службу:

sudo systemctl restart systemd-logind

HandleLidSwitch

ignore отключает реакцию на закрытие крышки ноутбука. Если ноутбук используется как сервер — это правильно. Если как рабочая станция — выберите suspend или lock.


Проверка скриптов сна

Пользовательские скрипты или хуки в /usr/lib/systemd/system-sleep/ могут вызывать приостановку. Проверим содержимое:

ls /usr/lib/systemd/system-sleep/

Если найдёте скрипты — проверьте их содержимое и удалите или переименуйте ненужные.


Настройки управления питанием в DE

Окружения рабочего стола (GNOME, KDE) могут иметь собственные настройки питания, которые принуждают систему к приостановке.

DE переопределяет systemd

GNOME и KDE имеют собственные power managers, которые могут игнорировать настройки logind.conf. Проверьте параметры питания в настройках окружения.


Отладка ACPI-событий

ACPI-события (закрытие крышки, кнопка питания) могут вызывать приостановку. Проверим логи:

journalctl | grep ACPI

Определённые ACPI-действия можно отключить через /etc/systemd/logind.conf (см. раздел выше).


Просмотр системных логов

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

journalctl -b | grep "suspend"
journalctl -b | grep "PrepareForSleep"

Ищите закономерности

Ищите шаблоны — конкретные сервисы или события, инициирующие приостановку. Часто виновником оказывается таймер или power manager окружения.


Связанные статьи

  • ssh-setup — настройка SSH-сервера (сервер не должен засыпать)