Вопрос или проблема
ФОН
Я пытаюсь настроить домашний сервер с круглосуточным доступом на моем 10-летнем ноутбуке MacbookPro, но я хочу, чтобы он был сложен большую часть времени (из-за ограниченного физического пространства).
Хотя мне иногда нужно использовать графический интерфейс, поэтому я хотел бы иметь систему с GUI, а не устанавливать ‘безголовую’ серверную версию.
Таким образом, когда крышка экрана закрыта (=ноутбук сложен), я хочу, чтобы все было ВКЛЮЧЕНО (включая Wi-Fi и все сетевые службы и приложения, работающие на системе), ЗА ИСКЛЮЧЕНИЕМ экрана (я хочу, чтобы экран был ВЫКЛЮЧЕН только тогда, когда крышка закрыта)
ТЕКУЩАЯ СИТУАЦИЯ
(1). Под графическим интерфейсом (после входа в систему) я изменил поведение ‘закрытия крышки’ на ‘заблокировать экран’ и отключил спящий режим (под моими обычными именами пользователей, а также под root-учетной записью). Теперь после входа в систему под графическим интерфейсом, если я закрываю крышку, экран быстро гаснет (как я могу судить по свету логотипа APPLE на задней стороне экрана), при этом сеть (Wi-Fi) всегда подключена (проверено более 10 часов).
(2). При настройках, упомянутых в (1), если система перезагружается (или загружается заново) без входа в систему под графическим интерфейсом с закрытой крышкой, система на время подключается к Wi-Fi, а затем отключается. И это не то, что я хотел, потому что систему можно перезагрузить удаленно без ручного входа в систему через графический интерфейс.
ЧТО Я ПОПЫТАЛСЯ СДЕЛАТЬ
(a)
sudo systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target
(b)
В файле /etc/systemd/sleep.conf.d/nosuspend.conf
[Sleep]
AllowSuspend=no
AllowHibernation=no
AllowSuspendThenHibernate=no
AllowHybridSleep=no
(c)
В файле /etc/systemd/logind.conf
[Login]
HandleLidSwitch=ignore
HandleLidSwitchDocked=ignore
(d)
В файле /etc/systemd/logind.conf
[Login]
HandleLidSwitch=lock
Вышеупомянутые (a), (b), (c), (d) были протестированы отдельно, после чего последовала перезагрузка. Все они могли поддерживать систему ‘живой’ (Wi-Fi подключен и службы/приложения работают) ДО входа через GUI. НО во всех 4 ситуациях экран остается ВКЛЮЧЕННЫМ всегда (когда крышка закрыта)…
Как я могу выключить экран (подсветку также) только при этом оставив все остальное работающим даже до входа в систему? Спасибо!
Ответ или решение
Чтобы ограничить поведение закрытия крышки ноутбука до входа в систему после загрузки на вашем старом MacBook Pro, необходимо учесть несколько технических аспектов, позволяющих достичь желаемого результата. В данной статье мы подробно разберем шаги, которые помогут вам отключить экран при закрытии крышки, сохранив при этом работу всех сетевых служб и приложений.
Фон
Вы создали домашний сервер на базе MacBook Pro, который должен работать круглосуточно. При этом важно, чтобы при закрытой крышке экран ноутбука отключался, а все сетевые подключения оставались активными. Ваша текущая конфигурация позволяет добиться этого после авторизации, но проблема возникает при перезагрузке или свежей загрузке системы с закрытой крышкой — в этом случае Wi-Fi отключается.
Проблема
Основная задача заключается в том, чтобы отключать экран при закрытии крышки, сохранив активность системы, включая Wi-Fi, даже до момента входа в систему. Ваши предыдущие попытки настройки поведения ноутбука с помощью различных конфигураций systemd не привели к желаемому результату, так как экран продолжает оставаться включенным.
Решение
Для достижения желаемого поведения вам необходимо внести изменения в конфигурацию системы и убедиться, что вы используете правильные параметры, которые поддерживают состояние ‘всё включено’ при закрытой крышке.
-
Проверьте BIOS/EFI настройки:
- Убедитесь, что в настройках BIOS или EFI (в зависимости от версии) не стоит параметр, который отвечает за автоматическую блокировку или переход в спящий режим при закрытии крышки. Это может мешать правильной работе настроек.
-
Настройка systemd:
- Откройте конфигурацию
logind
с помощью команды:sudo nano /etc/systemd/logind.conf
- Убедитесь, что у вас прописано следующее:
[Login] HandleLidSwitch=ignore
- После этого перезагрузите систему, чтобы изменения вступили в силу.
- Откройте конфигурацию
-
Используйте скрипт для отключения экрана:
- Напишите простой shell-скрипт, который будет отключать экран, когда ноутбук обнаруживает закрытую крышку. Для этого создайте файл, например,
lid-close.sh
:#!/bin/bash xset dpms force off
- Дайте этому скрипту права на выполнение:
chmod +x lid-close.sh
- Напишите простой shell-скрипт, который будет отключать экран, когда ноутбук обнаруживает закрытую крышку. Для этого создайте файл, например,
-
Настройка автоматического выполнения скрипта:
- Для автоматизации отключения экрана при закрытии крышки на этапе загрузки, вы можете использовать систему cron или создать службу systemd:
sudo systemctl enable your-script.service
- Для автоматизации отключения экрана при закрытии крышки на этапе загрузки, вы можете использовать систему cron или создать службу systemd:
-
Дополнительно:
- Если система все еще не отключает экран, вы можете использовать команды
xrandr
для более точного контроля над состоянием экрана. Добавьте эти команды в ваш скрипт для отключения экрана.
- Если система все еще не отключает экран, вы можете использовать команды
Итог
Следуя приведенным выше шагам, вы сможете настроить поведение вашего MacBook Pro так, чтобы экран отключался при закрытии крышки, а все сетевые функции и службы оставались активными даже до входа в систему. Если у вас возникнут дополнительные вопросы или сложности, рекомендуется обратиться к сообществу пользователей macOS или вашему IT-отделу для получения специализированной помощи.