Jak śledzić, kiedy moje połączenie OpenVPN jest aktywne (systemd)

0

Korzystam z usługi openvpn-client @ .service, aby połączyć się z moją siecią VPN. Kiedy uruchamiam komputer, podłączenie go zajmuje trochę czasu. Chciałbym zobaczyć powiadomienie na pulpicie, gdy połączenie zostanie nawiązane. Najlepiej natywne powiadomienie KDE.

Byłoby dobrze, gdybym mógł otrzymać powiadomienie, jeśli połączenie się nie powiedzie.

Wiem, że NetworkManager da mi powiadomienie, ale chciałbym użyć systemd.

użytkownik S.
źródło

Odpowiedzi:

1

Możesz użyć, notify-sendaby wysłać powiadomienie.

Prostym sposobem, aby to zadziałało, byłoby systemctl statuswielokrotne odpytywanie skryptu bash i uruchamianie tego skryptu w tle w twoim .profile.

To nie jest eleganckie, ale napisanie zajmie Ci mniej niż 5 minut i będzie działać dobrze.

Edycja: Bardziej systemowym sposobem na to byłoby napisanie jednostki zależnej od usługi klienta openvpn i wysłanie wiadomości o sukcesie. Możesz użyć timera systemctl, który jest anulowany przez to pierwsze urządzenie, aby wysłać komunikat o błędzie.

Ale tak naprawdę nie widzę sensu. Będziesz musiał pogodzić się ze zmiennymi środowiskowymi i nie będzie to więcej czytelne ani niezawodne :)

cmc
źródło
Dziękuję za Twoją odpowiedź. Gdybym użył pierwszej metody, mogłoby się wydawać, że pojawiłoby się jakieś opóźnienie, zanim dostanę wiadomość, lub musiałbym bardzo często sondować. Druga metoda wydaje się bardziej podobna do tego, czego chcę, ale zauważyłem nieco inną metodę, z której mógłbym skorzystać. Istnieje plik .conf dla mojej sieci VPN, z którego korzysta OpenVPN. Mogę sprawić, że będą wywoływać skrypty, gdy VPN wzrośnie lub spadnie. Uruchomiłem powiadomienie-wyślij zgodnie z zaleceniami, ale ponieważ OpenVPN działa jako root, nie widzę wiadomości. Czy wiesz jak to obejść? Próbowałem też wall -n "VPN is up"tam zainstalować, ale wszystkie terminale to dostają.
użytkownik.S.10.1018
Nie ma za co. Możesz użyć sudo -u <your user> notify-send. Musisz także ustawić niezbędne zmienne środowiskowe (gniazdo DBUS, jeśli dobrze pamiętam). Możesz zrzucić wszystkie zmienne środowiskowe do pliku tymczasowego przy uruchomieniu export -p > filenamei załadować je source filename. Jeśli to zadziała, możesz poeksperymentować z usuwaniem niektórych zmiennych, aż uzyskasz minimalny zestaw. Jeśli używasz wielu wyświetlaczy X, najłatwiej jest po prostu wysłać je wszystkie.
cmc
Możesz edytować skrypt systemctl, aby wywoływać coś w przypadku sukcesu lub niepowodzenia, jeśli wolisz.
cmc
Aby to zrobić za pomocą systemctl: użyj OnFailure = do zgłaszania awarii i drugiej usługi, która chce openvpn-client @ do pomyślnego odtworzenia.
cmc