Я хотел бы запустить/остановить процесс, прежде чем мой ПК будет спать или просыпаться.
Я не знаю, как сделать это.
Команда:
Передо сном: killall libinput-debug-events
После пробуждения: libinput-gestures-setup start
/lib/systemd/system-sleep
каталогСоздайте сценарий в /lib/systemd/system-sleep
это похоже на это:
#!/bin/sh
case $1/$2 in
pre/*)
echo "Going to $2..."
killall libinput-debug-events
;;
post/*)
echo "Waking up from $2..."
# Place your post suspend (resume) commands here, or `exit 0` if no post suspend action required
sleep 2
libinput-gestures-setup start
;;
esac
Гарантировать сценарий создается с правильными полномочиями, копией и существующим сценарием, и затем отредактируйте его:
cd /lib/systemd/system-sleep
sudo cp wpasupplicant tv_refresh
gksu gedit tv_refresh
sleep 2
пауза может быть ненужной для Вас, но для моей установки это был необходимый звук восстановления от ноутбука назад к ТВ HDMI.
echo
строки являются дополнительными, но являются удобными, потому что они обнаруживаются в /var/log/syslog
.
systemd
сервисы для root
или user
От: (archlinux - Управление питанием), мы получаем подробные инструкции для приостановки и возобновления любого под root
полномочия или user
полномочия.
Сервисные файлы могут быть сцеплены в suspend.target, hibernate.target и sleep.target для выполнения действий, прежде чем или после будут приостанавливать/быть в спящем режиме. Отдельные файлы должны быть созданы для пользовательских действий и действий корня/системы. Позвольте сервисам suspend@user и resume@user запустить их при начальной загрузке. Примеры:
/etc/systemd/system/suspend@.service
[Unit]
Description=User suspend actions
Before=sleep.target
[Service]
User=%I
Type=simple
Environment=DISPLAY=:0
ExecStartPre= -/usr/bin/pkill -u %u unison ; /usr/local/bin/music.sh stop ; /usr/bin/mysql -e 'slave stop'
ExecStart=/usr/bin/sflock
ExecStartPost=/usr/bin/sleep 1
[Install]
WantedBy=sleep.target
/etc/systemd/system/resume@.service
[Unit]
Description=User resume actions
After=suspend.target
[Service]
User=%I
Type=simple
ExecStartPre=/usr/local/bin/ssh-connect.sh
ExecStart=/usr/bin/mysql -e 'slave start'
[Install]
WantedBy=suspend.target