web-dev-qa-db-fra.com

Exécuter un script réseau au réveil avec systemd (15.04)

Je souhaite connecter mon VPN après le réveil.

1) J'ai créé un script chez moi (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) J'ai créé un service dans/etc/systemd/system/named 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

) Ensuite, je l'ai activé avec

systemctl enable wakeup.service

et

systemctl status wakeup.service

vérifier.

4) Après un essai, le script est lancé, mais j'ai cette erreur dans le journal:

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

Qu'est-ce qui ne va pas ? nmcli peut fonctionner avec un utilisateur normal.

4
Guillaume

Au lieu de séparer After et WantedBy, mettez-les dans une série comme:

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

Au moins cela a fonctionné pour moi. Je ne suis pas sûr de ce que le basic.target est, mais j'utilise les deux autres avec succès, comme je l'ai montré.

1
oregonjohn