Wie Sie nachverfolgen können, wann meine OpenVPN-Verbindung besteht (systemd)

379
user.S

Ich verwende den Dienst openvpn-client @ .service, um eine Verbindung zu meinem VPN herzustellen. Wenn ich meinen Computer starte, dauert es eine Weile, bis die Verbindung hergestellt ist. Ich möchte eine Desktopbenachrichtigung, wenn die Verbindung hergestellt ist. Vorzugsweise eine native KDE-Benachrichtigung.

Es wäre auch gut, wenn ich eine Benachrichtigung erhalten könnte, wenn die Verbindung fehlschlägt.

Ich weiß, dass NetworkManager mich benachrichtigt, aber ich möchte systemd verwenden.

0

1 Antwort auf die Frage

1
cmc

Sie können notify-sendeine Benachrichtigung senden.

Eine einfache Möglichkeit, dies zu erreichen, besteht darin, systemctl statuswiederholt von einem Bash-Skript abzufragen und dieses Skript im Hintergrund in Ihrem zu starten .profile.

Es ist nicht elegant, aber Sie brauchen weniger als 5 Minuten, um zu schreiben, und es wird gut funktionieren.

Bearbeiten: Die systemctl-y-Methode wäre es, eine Einheit zu schreiben, die von Ihrem openvpn-Client-Dienst abhängt, und bei Erfolg eine Nachricht senden zu lassen. Sie können einen Systemctl-Timer verwenden, der von dieser ersten Einheit abgebrochen wird, um eine Fehlernachricht zu senden.

Aber ich verstehe den Punkt nicht wirklich. Sie müssten sich mit Ihren Umgebungsvariablen auseinandersetzen und es wird nicht lesbarer oder zuverlässiger sein :)

Danke für die Antwort. Wenn ich die erste Methode verwendete, scheint es entweder eine Verzögerung zu geben, bevor ich die Nachricht bekomme, oder ich müsste sehr oft abfragen. Die zweite Methode scheint mir eher zu gefallen, aber ich habe eine etwas andere Methode bemerkt, die ich möglicherweise verwenden kann. Es gibt eine .conf-Datei für mein VPN, die OpenVPN verwendet. Ich kann es Skripte aufrufen lassen, wenn das VPN nach oben oder unten geht. Ich habe es notify-send so gemacht, wie Sie es empfohlen haben, aber da OpenVPN als root ausgeführt wird, sehe ich die Nachricht nicht. Wissen Sie, wie Sie das umgehen können? Ich habe auch versucht, "wall -n" "VPN ist oben" einzubauen, aber alle Terminals bekommen es. user.S vor 6 Jahren 0
Bitte. Sie können `sudo -u verwendennotify-send ". Sie müssen auch die erforderlichen Umgebungsvariablen festlegen (DBUS-Socket, wenn ich mich richtig erinnere). Sie können alle Umgebungsvariablen beim Start mit `export -p> Dateiname 'in eine temporäre Datei sichern und sie mit` Quelldateiname` laden. Wenn dies funktioniert, können Sie mit dem Entfernen einiger Variablen experimentieren, bis Sie ein Minimum festgelegt haben. Wenn Sie mehrere X-Displays verwenden, ist es am einfachsten, ihnen alle zu melden. cmc vor 6 Jahren 0
Sie können das systemctl-Skript bearbeiten, um bei Erfolg oder Misserfolg auch etwas aufzurufen, wenn Sie dies lieber tun möchten. cmc vor 6 Jahren 0
Um dies mit systemctl zu tun: Verwenden Sie OnFailure = zum Melden von Fehlern und einen zweiten Dienst, der openvpn-client @ für den Erfolg wünscht. cmc vor 6 Jahren 0