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

Gui*_*ume 5 network-manager wakeup systemd

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

\n\n

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

\n\n
#! /bin/bash\n(echo "Sortie de veille: lancement de wakeup le $(date \'+%d/%m/%Y a %H:%M\')"\nsleep 30\nnmcli con up id "My_id_xxxxxx"\necho "-------------------END LOG-------------------") 2>&1 | tee -a /home/guillaume/sortie_veille_auto.log\n
Run Code Online (Sandbox Code Playgroud)\n\n

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

\n\n
[Unit]\nDescription=Run user script after suspend\nAfter=basic.target\nAfter=suspend.target\nAfter=hibernate.target\n\n[Service]\nUser=guillaume\nEnvironment=DISPLAY=:0\nExecStart=/home/guillaume/wakeup\n\n[Install]\nWantedBy=basic.target\nWantedBy=suspend.target\nWantedBy=hibernate.target\n
Run Code Online (Sandbox Code Playgroud)\n\n

3)然后,我用以下命令激活了它

\n\n
systemctl enable wakeup.service\n
Run Code Online (Sandbox Code Playgroud)\n\n

\n\n
systemctl status wakeup.service\n
Run Code Online (Sandbox Code Playgroud)\n\n

核实。

\n\n

4)尝试后,脚本启动,但日志中出现以下错误:

\n\n
Erreur : l\'activation de la connexion a \xc3\xa9chou\xc3\xa9 : Not authorized to control networking.\n
Run Code Online (Sandbox Code Playgroud)\n\n

怎么了 ?nmcli 可以与普通用户一起使用。

\n

小智 1

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

After=basic.target suspend.target hibernate.target
WantedBy=basic.target suspend.target hibernate.target
Run Code Online (Sandbox Code Playgroud)

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


归档时间:

查看次数:

2192 次

最近记录:

9 年,1 月 前