Запускайте bash-скрипты при событиях сна и пробуждения в KDE Plasma от имени определенного пользователя.

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

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 юнита

  1. Откройте терминал и создайте новый файл юнита в директории /etc/systemd/system/, например sleep-wakeup.service:

    sudo nano /etc/systemd/system/sleep-wakeup.service
  2. Вставьте в файл следующий код:

    [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 таргета

  1. Далее создайте файл для сервиса, который будет управлять этим юнитом. Создайте файл sleep-wakeup.timer:

    sudo nano /etc/systemd/system/sleep-wakeup.timer
  2. Введите следующее:

    [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 это можно сделать довольно просто. Следуя данному пошаговому руководству, вы сможете настроить свою систему так, чтобы она выполняла необходимые команды в нужные моменты.

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

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