使用 systemd (15.04) 在唤醒时执行网络脚本

使用 systemd (15.04) 在唤醒时执行网络脚本

我想在唤醒后连接我的 VPN。

1)我在家里创建了一个脚本(wakeup.sh)

#! /bin/bash
(echo "Sortie de veille: lancement de wakeup le $(date '+%d/%m/%Y a %H:%M')"
sleep 30
nmcli con up id "My_id_xxxxxx"
echo "-------------------END LOG-------------------") 2>&1 | tee -a /home/guillaume/sortie_veille_auto.log

2)我在 /etc/systemd/system/ 中创建了一个名为 wakeup.service 的服务:

[Unit]
Description=Run user script after suspend
After=basic.target
After=suspend.target
After=hibernate.target

[Service]
User=guillaume
Environment=DISPLAY=:0
ExecStart=/home/guillaume/wakeup

[Install]
WantedBy=basic.target
WantedBy=suspend.target
WantedBy=hibernate.target

3)然后我使用

systemctl enable wakeup.service

systemctl status wakeup.service

核实。

4)尝试后,脚本启动了,但是日志中出现此错误:

Erreur : l'activation de la connexion a échoué : Not authorized to control networking.

有什么问题?nmcli 可以与普通用户一起工作。

答案1

After不要将和分开WantedBy,而是将它们放在一系列中,例如:

After=basic.target suspend.target hibernate.target
WantedBy=basic.target suspend.target hibernate.target

至少对我来说是有效的。我不确定是什么basic.target,但我成功地使用了另外两个,就像我所展示的那样。

相关内容