Вопрос или проблема
KDE Plasma 5.27.11 на Debian 12 amd64
Мне нужно отправлять очень короткие сигналы через USB во время событий управления питанием рабочего стола, связанных с переходом в режим сна и пробуждением (не входом и выходом, они работают нормально). Я подготовил отдельные bash-скрипты для этих событий, но не смог найти, как их привязать. У меня есть доступ root к машине, так что решения с конфигурацией подойдут мне. Как это можно сделать?
Ответ или решение
Для того чтобы выполнить bash-скрипты при событиях сна и пробуждения в среде KDE Plasma (в данном случае версия 5.27.11 на Debian 12 amd64), необходимо настроить обработку событий управления питанием на уровне системы. Рассмотрим шаги, которые помогут вам осуществить данное действие.
1. Подготовка скриптов
Убедитесь, что ваши bash-скрипты корректны и имеют необходимые разрешения на выполнение. Вы можете установить разрешения с помощью следующей команды:
chmod +x /путь/к/вашему/скрипту
2. Настройка системных событий
KDE Plasma использует systemd
, чтобы управлять событиями управления питанием. Это означает, что вы можете использовать systemd
для привязки ваших скриптов к событиям сна и пробуждения.
Создание systemd
юнита
-
Откройте терминал и создайте новый файл юнита в директории
/etc/systemd/system/
, напримерsleep-wakeup.service
:sudo nano /etc/systemd/system/sleep-wakeup.service
-
Вставьте в файл следующий код:
[Unit] Description=Run scripts on sleep and wakeup DefaultDependencies=no After=suspend.target After=suspend-then-hibernate.target After=hibernate.target After=hibernate-then-suspend.target [Service] Type=oneshot ExecStart=/путь/к/вашему/скрипту_на_пробуждение ExecStop=/путь/к/вашему/скрипту_на_сон User=ваш_пользователь RemainAfterExit=yes [Install] WantedBy=suspend.target WantedBy=hibernate.target
Замените
/путь/к/вашему/скрипту_на_пробуждение
и/путь/к/вашему/скрипту_на_сон
на пути к вашим скриптам, аваш_пользователь
на имя пользователя, от которого должен запускаться скрипт.
Создание systemd
таргета
-
Далее создайте файл для сервиса, который будет управлять этим юнитом. Создайте файл
sleep-wakeup.timer
:sudo nano /etc/systemd/system/sleep-wakeup.timer
-
Введите следующее:
[Unit] Description=Run sleep-wakeup service [Timer] OnActiveSec=1min OnUnitActiveSec=5min [Install] WantedBy=timers.target
3. Активация таймера и юнита
После того как вы создали файлы сервиса и таймера, необходимо их активировать и запустить:
sudo systemctl daemon-reload
sudo systemctl enable sleep-wakeup.service
sudo systemctl enable sleep-wakeup.timer
sudo systemctl start sleep-wakeup.timer
4. Проверка работы
Убедитесь, что ваши скрипты запускаются при событиях сна и пробуждения. Вы можете просмотреть логи с помощью команды:
journalctl -u sleep-wakeup.service
Это поможет вам отследить выполнение скриптов и выявить возможные ошибки.
Заключение
Настройка запуска bash-скриптов на события сна и пробуждения в KDE Plasma может показаться сложной, но с помощью systemd
это можно сделать довольно просто. Следуя данному пошаговому руководству, вы сможете настроить свою систему так, чтобы она выполняла необходимые команды в нужные моменты.