Comment savoir quand ma connexion OpenVPN est active (systemd)

0

J'utilise le service openvpn-client @ .service pour me connecter à mon VPN. Lorsque je démarre mon ordinateur, il faut un peu de temps pour le connecter. Je voudrais voir une notification de bureau lorsque la connexion est établie. De préférence, une notification KDE native.

Ce serait également bien si je pouvais recevoir une notification si la connexion échouait.

Je sais que NetworkManager me donnera une notification, mais je voudrais utiliser systemd.

utilisateurs
la source

Réponses:

1

Vous pouvez utiliser notify-sendpour envoyer une notification.

Un moyen simple de le faire fonctionner serait donc d'interroger de manière systemctl statusrépétée à partir d'un script bash et de démarrer ce script en arrière-plan dans votre .profile.

Ce n’est pas élégant, mais il vous faudra moins de 5 minutes pour écrire et tout ira bien.

Edit: La manière la plus systémique de le faire serait d’écrire une unité qui dépend de votre service openvpn-client et de lui envoyer un message en cas de succès. Vous pouvez utiliser un temporisateur systemctl qui est annulé par cette première unité pour envoyer un message d'échec.

Mais je ne vois pas vraiment le point. Vous devrez utiliser vos variables d'environnement et ce ne sera plus lisible ni fiable :)

cmc
la source
Merci pour la réponse. Si j'utilisais la première méthode, il semblerait qu'il y aurait un certain délai avant que je reçoive le message ou qu'il me faille interroger très souvent. La deuxième méthode semble plus comme ce que je veux mais j'ai remarqué une méthode quelque peu différente que je pourrais peut-être utiliser. Il existe un fichier .conf pour mon VPN utilisé par OpenVPN. Je peux le faire appeler des scripts lorsque le VPN monte ou descend. Je l'ai fait exécuter notify-send comme vous le recommandiez, mais comme OpenVPN est exécuté en tant que root, je ne vois pas le message. Savez-vous comment contourner cela? J'ai aussi essayé de le mettre wall -n "VPN is up"mais tous les terminaux l'ont compris.
user.S
Je vous en prie. Vous pouvez utiliser sudo -u <your user> notify-send. Vous devrez également définir les variables d’environnement nécessaires (prise DBUS, si je me souviens bien). Vous pouvez vider toutes vos variables d’environnement dans un fichier temporaire au démarrage export -p > filenameet les charger source filename. Si cela fonctionne, vous pouvez essayer de supprimer certaines des variables jusqu'à ce que vous ayez un ensemble minimum. Si vous utilisez plusieurs écrans X, la solution la plus simple consiste à les envoyer à tous.
cmc
Si vous préférez, vous pouvez modifier le script systemctl pour appeler quelque chose en cas de succès ou d’échec.
cmc
Pour le faire avec systemctl: utilisez OnFailure = pour signaler un échec et un deuxième service qui veut openvpn-client @ pour enregistrer le succès.
cmc