, последнее обновление:

Запуск юнитов при выходе из сна или гибернации

На моем ноутбуке есть RGB подсветка у клавиатуры, и, к сожалению, контроллер не запоминает выбранный режим перед потерей питания. Поэтому при каждом выходе из сна мне нужно запускать некий юнит, который установит нужный режим работы подсветки.

tl;dr

Пишем в /etc/systemd/system/UNIT_NAME.service (не забудьте правильно настроить раздел Service!):

[Unit]
Description=Sets keyboard RGB backlit.
After=sleep.target hibernate.target

[Service]
Type=oneshot
ExecStart=/usr/sbin/aucc -c white -b 4

[Install]
WantedBy=multi-user.target sleep.target hibernate.target

Даем команды:

sudo systemctl daemon-reload
sudo systemctl enable UNIT_NAME

Чуть подробностей

Для того, чтобы включенный юнит запускался после сна или гибернации, когда вы открываете обратно крышку ноутбука, или же грузите обратно ваш системник, у юнита должны быть прописаны:

  • After=sleep.target hibernate.target - указываем, что юнит запускается после выполнения таргетов sleep и hibernate. Эти таргеты последним действием имеют, собственно, уход железа в сон или гибернацию.
  • WantedBy=multi-user.target sleep.target hibernate.target в блоке Install - указываем, что включаться этот юнит должен, во-первых, при запуске “на холодную” (multi-user.target), а также в таргете перехода в/выхода из сна (sleep.target) и гибернации (hibernate.target).