Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 30/04/2015, à 08: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 sad

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, à 08: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, à 09: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, à 10: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, à 10: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, à 10: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, à 10: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 smile


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, à 15: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, à 21: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 tongue


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