#1 Le 30/04/2015, à 09:20
- Gaara
Executer un script en sortie de veille avec systemd (15.04)
Salut à tous !
Alors voilà, j'aimerais qu'en sortie de veille l'ordi de reconnecte automatiquement au VPN. Le pm-suspend est obsolète et n'est plus utilisé, donc ce qui fonctionnait en 14.10 ne fonctionne plus
1) J'ai créé un script dans mon home (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 "Mon_id_xxxxxx"
echo "-------------------FIN DU LOG-------------------") 2>&1 | tee -a /home/guillaume/sortie_veille_auto.log
2) J'ai créé un service dans /etc/systemd/system/ nommé 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) Ensuite, j'ai activé le service avec
systemctl enable wakeup.service
(je me suis inspiré de ce fil)
3b) On peut aussi faire
systemctl daemon-reload
si on modifie un des deux fichiers, et
systemctl status wakeup.service
pour vérifier.
4) Après mise en veille et réveil, le script s'exécute bien, mais cette erreur s'affiche dans le log:
Erreur : l'activation de la connexion a échoué : Not authorized to control networking.
La ligne nmcli con up id "Mon_id_xxxxxx", qui doit activer le VPN, fonctionne avec l'utilisateur normal dans le terminal.
Que faut-il faire pour avoir l'autorisation ?
J'ai essayé
[Unit]
Description=Run user script after suspend
After=basic.target
After=suspend.target
After=hibernate.target
[Service]
User=guillaume
Environment=DISPLAY=:0
ExecStart=/usr/bin/nmcli con up id "Mon_id_xxxxxx"
[Install]
WantedBy=basic.target
WantedBy=suspend.target
WantedBy=hibernate.target
Mais pareil, même erreur...
Dernière modification par Gaara (Le 30/04/2015, à 09:28)
Kubuntu 18.04 x64
Un terminal tactile Raspberry Pi et Odroid
<code>zenity --question --title "Alert" --text "Microsoft Windows has been found! Would you like to remove it?"</code>
Hors ligne
#2 Le 30/04/2015, à 10:57
- maxire
Re : Executer un script en sortie de veille avec systemd (15.04)
Salut,
Essaies avec:
After=multi-user.target
à la place de
After=basic.target
Je ne suis pas certain que le réseau soit démarré après basic.target.
Maxire
Archlinux/Mate + Ubuntu 22.04 + Archlinux/Gnome sur poste de travail
Hors ligne
#3 Le 30/04/2015, à 11:15
- maxire
Re : Executer un script en sortie de veille avec systemd (15.04)
Tu peux connaître ce que comprend basic.target avec cette commande:
systemctl list-dependencies basic.target
[frankenstein@frankenstein ~]$ systemctl list-dependencies basic.target
basic.target
● ├─alsa-restore.service
● ├─alsa-state.service
● ├─local-console.service
● ├─paths.target
● ├─slices.target
● │ ├─-.slice
● │ └─system.slice
● ├─sockets.target
● │ ├─cups.socket
● │ ├─dbus.socket
● │ ├─dm-event.socket
● │ ├─sshd.socket
● │ ├─systemd-initctl.socket
● │ ├─systemd-journald-audit.socket
● │ ├─systemd-journald-dev-log.socket
● │ ├─systemd-journald.socket
● │ ├─systemd-shutdownd.socket
● │ ├─systemd-udevd-control.socket
● │ └─systemd-udevd-kernel.socket
● ├─sysinit.target
● │ ├─dev-hugepages.mount
● │ ├─dev-mqueue.mount
● │ ├─kmod-static-nodes.service
● │ ├─ldconfig.service
● │ ├─lvm2-lvmetad.socket
● │ ├─proc-sys-fs-binfmt_misc.automount
● │ ├─sys-fs-fuse-connections.mount
● │ ├─sys-kernel-config.mount
● │ ├─sys-kernel-debug.mount
● │ ├─systemd-ask-password-console.path
● │ ├─systemd-binfmt.service
● │ ├─systemd-firstboot.service
● │ ├─systemd-hwdb-update.service
● │ ├─systemd-journal-catalog-update.service
● │ ├─systemd-journal-flush.service
● │ ├─systemd-journald.service
● │ ├─systemd-machine-id-commit.service
● │ ├─systemd-modules-load.service
● │ ├─systemd-random-seed.service
● │ ├─systemd-sysctl.service
● │ ├─systemd-sysusers.service
● │ ├─systemd-tmpfiles-setup-dev.service
● │ ├─systemd-tmpfiles-setup.service
● │ ├─systemd-udev-trigger.service
● │ ├─systemd-udevd.service
● │ ├─systemd-update-done.service
● │ ├─systemd-update-utmp.service
● │ ├─systemd-vconsole-setup.service
● │ ├─cryptsetup.target
● │ ├─local-fs.target
● │ │ ├─-.mount
● │ │ ├─data.mount
● │ │ ├─home-frankenstein-Musique.mount
● │ │ ├─home-marietheresem-Musique.mount
● │ │ ├─home.mount
● │ │ ├─srv-sftp-Musique.mount
● │ │ ├─systemd-fsck-root.service
● │ │ ├─systemd-remount-fs.service
● │ │ ├─tmp.mount
● │ │ ├─usb_static_drive-Elements.mount
● │ │ └─var-lib-backuppc.mount
● │ └─swap.target
● │ └─dev-sda5.swap
● └─timers.target
● └─systemd-tmpfiles-clean.timer
lines 1-66/66 (END)
Dans ce cas le réseau n'est effectivement pas encore démarré, dans ton cas je ne sais pas.
Maxire
Archlinux/Mate + Ubuntu 22.04 + Archlinux/Gnome sur poste de travail
Hors ligne
#4 Le 30/04/2015, à 11:35
- Gaara
Re : Executer un script en sortie de veille avec systemd (15.04)
Merci de tes réponses, j'ai aussi ajouté
Wants=openvpn.service NetworkManager.service
car si openvpn n'est pas redémarré, ça ne peut pas marcher.
Mais là j'ai pleins de soucis avec mon driver graphique, le réveil fonctionne une fois sur deux. Je pense réinstaller, car j'ai pleins d'autres bug... puis refaire des essais.
La migration vers 15.04 est difficile, surtout que je migre depuis 13.10, ça va pas faire de mal.
Je reviens après !
Dernière modification par Gaara (Le 30/04/2015, à 11:46)
Kubuntu 18.04 x64
Un terminal tactile Raspberry Pi et Odroid
<code>zenity --question --title "Alert" --text "Microsoft Windows has been found! Would you like to remove it?"</code>
Hors ligne
#5 Le 30/04/2015, à 11:45
- Gaara
Re : Executer un script en sortie de veille avec systemd (15.04)
Et effectivement, j'ai (entre autres)
~$ systemctl list-dependencies multi-user.target
multi-user.target
● ├─ModemManager.service
● ├─NetworkManager.service
● ├─openvpn.service
C'est peut-être une bonne piste
Kubuntu 18.04 x64
Un terminal tactile Raspberry Pi et Odroid
<code>zenity --question --title "Alert" --text "Microsoft Windows has been found! Would you like to remove it?"</code>
Hors ligne
#6 Le 07/05/2015, à 16:21
- Compte anonymisé
Re : Executer un script en sortie de veille avec systemd (15.04)
Salut,
Peut-être as tu résolu ton pb...
L'équivalent de /etc/pm/sleep.d/ est /usr/lib/systemd/system-sleep/ avec systemd.
Exemple de script (https://wiki.archlinux.org/index.php/Power_management) :
#!/bin/sh
case $1/$2 in
pre/*)
echo "Passe en veille..."
;;
post/*)
echo "Sortie de veille..."
sudo -u TON_USER nmcli con up id "Mon_id_xxxxxx"
;;
esac
#7 Le 07/05/2015, à 22:12
- Gaara
Re : Executer un script en sortie de veille avec systemd (15.04)
Salut,
Je n'ai pas encore eu le temps d'y replonger, mais ta méthode semble être plus simple!
J'y jetterais un coup d'oeil un de ces jours, car finalement c'est moins pressé que prévu
Kubuntu 18.04 x64
Un terminal tactile Raspberry Pi et Odroid
<code>zenity --question --title "Alert" --text "Microsoft Windows has been found! Would you like to remove it?"</code>
Hors ligne