Задержка systemd slock автозапирания

Вопрос или проблема

Я экспериментировал с этим файлом autoslock.service:

[Unit]
Description=Блокировать экран при переходе в спящий режим
+Before=sleep.target

[Service]
User=garrett
Environment=DISPLAY=:0
ExecStart=/usr/local/bin/slock

[Install]
WantedBy=sleep.target

Это почти работает. Проблема в том, что есть короткий период, когда экран просыпается и его содержимое видно до того, как slock срабатывает. Что мне нужно сделать, чтобы это исправить? Мне кажется, должна быть возможность вызывать slock непосредственно перед сном, а не после пробуждения, но я не могу это решить.

Ответ или решение

Для решения проблемы, связанной с задержкой блокировки экрана с помощью slock после пробуждения системы, необходимо внести изменения в текущую конфигурацию службы autoslock.service. Основная цель заключается в том, чтобы обеспечить выполнение slock немедленно перед переходом системы в состояние сна, а не после пробуждения, что предотвратит кратковременное отображение содержимого экрана в момент пробуждения.

Анализ проблемы

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

Предложенные изменения

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

  1. Измените целевую цель: Вместо привязки к sleep.target, необходимо использовать suspend.target как точку воздействия. Это позволит запускать slock до того, как система уйдет в состояние сна.
[Unit]
Description=Lock the screen before suspend
Before=suspend.target

[Service]
User=garrett
Environment=DISPLAY=:0
ExecStart=/usr/local/bin/slock

[Install]
WantedBy=suspend.target
  1. Убедитесь, что нужные зависимости установлены: Проверьте, чтобы все зависимости для работы вашего скрипта slock были корректно настроены и установлены. Иногда могут возникать дополнительные требования для поддержки графического окружения под конкретно настроенный пользовательский экран.

  2. Проверьте конфигурацию автозапуска: После внесенных изменений необходимо обновить конфигурации systemd командой sudo systemctl daemon-reload и затем активировать ваш новый сервис:

sudo systemctl enable autoslock.service
  1. Проверка работоспособности: После повторного включения сервиса, проверьте его работоспособность, отправив систему в режим сна и убедитесь, что блокировка экрана происходит до фактического перехода в состояние сна.

Заключение

Правильно настроенный порядок выполнения служб в системе является ключевым элементом для обеспечения безопасности и защиты данных. В вашем случае, перемещение точки запуска slock до момента перехода в сон решит проблему визуализации содержимого экрана при пробуждении системы. Убедитесь в корректности всех изменений, и при необходимости, обратитесь к документации systemd для детального изучения команд и функций.

Оцените материал
Добавить комментарий

Капча загружается...