Вы можете настроить систему Linux так, чтобы она не переходила в спящий режим при закрытии крышки ноутбука. Отредактируйте /etc/systemd/logind.conf, измените две настройки на ignore и перезапустите службу входа в систему.
Это займёт меньше двух минут. Перезагрузка не требуется.
Это работает во всех дистрибутивах Linux, использующих systemd: Ubuntu, Debian, Fedora, Arch, Mint, Proxmox и других.
Зачем вам это нужно
Большинство ноутбуков переходят в спящий режим, когда вы закрываете крышку. Это экономит электроэнергию и защищает экран.
Но на домашнем сервере или хост-системе это не нужно. Вы хотите, чтобы система продолжала работать с закрытой крышкой.
Это распространённая практика, когда вы используете ноутбук в качестве сервера. Вы закрываете крышку, чтобы сэкономить место и защитить клавиатуру. Система должна оставаться активной.
Что на самом деле делает HandleLidSwitch
Служба systemd-logind отслеживает аппаратные события. Одно из таких событий — «крышка закрыта».
По умолчанию HandleLidSwitch установлено на suspend. Когда вы закрываете крышку, система переходит в спящий режим.
Вы можете изменить это на ignore. Система будет видеть, что крышка закрыта, но ничего не предпримет.
Также есть HandleLidSwitchDocked. Он управляет тем, что происходит, когда ноутбук подключен к док-станции. Для единообразия следует установить оба параметра на ignore.
Отключение режима ожидания ноутбука при закрытии крышки в Linux
Откройте файл конфигурации с правами root:
sudo nano /etc/systemd/logind.conf
Найдите эти две строки. В начале у них будет #:
#HandleLidSwitch=suspend #HandleLidSwitchDocked=suspend
Уберите # и замените suspend на ignore:
HandleLidSwitch=ignore HandleLidSwitchDocked=ignore
Сохраните файл. В nano нажмите Ctrl+X, затем Y, затем Enter.
Перезапустите службу входа в систему:
sudo systemctl restart systemd-logind
Готово. Изменение вступает в силу немедленно.
Как убедиться, что всё сработало
Проверьте статус службы:
systemctl status systemd-logind
Вы должны увидеть надпись «активно (работает)» зелёного цвета.
Теперь закройте крышку и подождите 30 секунд. Снова откройте её. Ваш сеанс SSH должен оставаться активным. Ваши службы должны продолжать работать.
Если система приостановилась, значит, вы допустили опечатку или забыли перезапустить службу.
Для проверки вы также можете использовать команду journalctl.
Закройте крышку и выполните:
journalctl -u systemd-logind | tail
Вы не должны видеть события приостановки.
Также подтвердите время безотказной работы:
uptime
Если время безотказной работы продолжает увеличиваться, значит, система не переходила в режим ожидания.
Работает ли это в моем дистрибутиве?
Да, если в вашем дистрибутиве используется systemd.
Подтверждено, что работает в:
- Ubuntu (все версии)
- Debian (все версии)
- Fedora
- Arch Linux, EndeavourOS и Manjaro
- Linux Mint
- Pop!_OS
- openSUSE
- Proxmox VE
- CentOS/RHEL 7+
- Rocky Linux и AlmaLinux
НЕ будет работать на:
- Дистрибутивы без systemd (Void Linux, Alpine Linux)
- Очень старые дистрибутивы, выпущенные до того, как systemd стал стандартом
- Gentoo или другие дистрибутивы, использующие OpenRC вместо systemd
Чтобы проверить, установлен ли у вас systemd, выполните команду:
systemctl --version
Пример вывода:
systemd 252 (252.39-1~deb12u1) +PAM + АУДИТ + SELINUX + APPARMOR +IMA + SMACK + SECCOMP + GCRYPT -GNUTLS +OPENSSL + ACL + BLKID +CURL + ELFUTILS +FIDO2 +IDN2 -IDN +IPTC + KMOD + LIBCRYPTSETUP +LIBFDISK +PCRE2 -PWQUALITY +P11KIT + QRENCODE + TPM2 +BZIP2 +LZ4 + XZ + ZLIB + ZSTD -BPF_FRAMEWORK - XKBCOMMON + UTMP + SYSVINIT по умолчанию-иерархия = унифицированная
Если вы видите информацию о версии, значит, у вас systemd и этот способ сработает.
Распространённые ошибки
Ошибка 1: запуск systemctl daemon-reload вместо
Вы увидите этот совет в интернете. Он не подходит для данного случая.
Команда daemon-reload перезагружает файлы модулей systemd (например, файлы .service). Файл logind.conf не является файлом модуля. Вам нужно перезапустить саму службу.
Ошибка 2. Оставлять # на месте
Строки, начинающиеся с #, являются комментариями. Они ничего не делают.
Чтобы настройка вступила в силу, нужно удалить # . Об этом легко забыть.
Ошибка 3. Изменять только одну настройку
Измените и HandleLidSwitch, и HandleLidSwitchDocked. Если вы измените только одну настройку, поведение может быть непоследовательным в зависимости от того, считает ли система, что окно закреплено.
Ошибка 4: ожидание, что всё заработает без перезапуска службы
Служба считывает файл конфигурации при запуске. Изменение файла не влияет на работающую службу. Необходимо перезапустить службу.
Ошибка 5: sudo
В большинстве дистрибутивов для редактирования /etc/systemd/logind.conf и перезапуска службы требуются права суперпользователя. Используйте sudo, если вы не вошли в систему как суперпользователь.
Ограничения и риски
У этого подхода есть реальные недостатки. Не игнорируйте их.
Риск перегрева: ноутбуки спроектированы таким образом, чтобы охлаждаться в открытом состоянии. Закрытый ноутбук с активной нагрузкой может перегреться. Это может привести к повреждению оборудования или сокращению срока его службы.
Убедитесь, что ваш ноутбук достаточно хорошо проветривается. Не ставьте на него другие предметы. Следите за температурой, если вы выполняете ресурсоёмкие задачи.
Случайная операция: когда крышка закрыта, вы не видите, что происходит в системе. Вы можете случайно нажать кнопку питания или отсоединить кабели, не заметив этого.
Защита экрана: Закрытая крышка обычно защищает экран от пыли и повреждений. Если вы оставите крышку открытой для вентиляции, защита будет нарушена.
Энергопотребление: В режиме ожидания система почти не потребляет энергию. В активном режиме система потребляет полную мощность. Это отразится на вашем счёте за электричество.
Когда это целесообразно
Это целесообразно, когда:
- Вы используете ноутбук в качестве выделенного сервера
- Ноутбук постоянно находится на одном месте
- Вам нужно, чтобы система работала круглосуточно
- Вы убедились, что система охлаждения работает должным образом
- Вы получаете доступ к ней только через SSH или веб-интерфейс
Когда не следует этого делать
Не делайте этого, если:
- Вы используете ноутбук в портативном режиме (в сумке, в дороге)
- У ноутбука плохое пассивное охлаждение
- Вы не понимаете, зачем оно нужно
- Ноутбук сильно нагревается даже с открытой крышкой
Если у вас портативный ноутбук, не отключайте режим ожидания. Он существует не просто так.
Реальные примеры использования
- Серверы домашней лаборатории: переоборудованный ThinkPad T480 под управлением Proxmox с 3 виртуальными машинами
- Среды разработки: старый MacBook Pro под управлением Ubuntu для контейнеров Docker
- Медиасерверы: ноутбук под управлением Plex, спрятанный за телевизором с закрытой крышкой
Контроль температуры ноутбука
Как я уже упоминал, если вы хотите отключить переход в спящий режим или режим ожидания при закрытии крышки ноутбука, вам необходимо следить за температурой. Один из способов сделать это — использовать утилиту Lm_sensors, которая предустановлена в современных дистрибутивах Linux.
# Проверка текущих температур
sensors
# Мониторинг в режиме реального времени
watch sensors
Альтернативные варианты, которые стоит рассмотреть
Если вы хотите действовать безопаснее:
- Не трогайте крышку
- Используйте внешний монитор и не закрывайте крышку
- Вместо этого отключите функции приостановки (для опытных пользователей)
Каждый вариант сопряжён с меньшими тепловыми рисками.
Заключение
В этой краткой статье мы рассказали, как предотвратить переход в режим ожидания при закрытии крышки ноутбука в Linux. Этот простой трюк надёжно работает в любом дистрибутиве Linux, использующем systemd.
Используйте его, если вы перепрофилировали ноутбук в сервер. Пропустите этот шаг, если ноутбук по-прежнему остаётся ноутбуком.
Изменение обратимо. Верните оба значения в suspend если передумаете.
Следите за температурой ноутбука. Не доверяйте ей безоговорочно. Серверное оборудование предназначено для закрытых помещений. Оборудование для ноутбуков — нет.
Ресурс: