Instancja OpenVPN pojawia się przy starcie pod nazwą, której nie rozpoznajesz, a jej zatrzymanie działa do następnego restartu. Ten wzorzec oznacza, że usunąłeś proces, ale nie aktywację. To dwa różne obiekty, a tylko jeden z nich jest widoczny na ekranie stanu. Znalezienie aktywacji wymaga czterech poleceń tylko do odczytu i jednej decyzji.

Najpierw nazwij dokładną jednostkę

Wyjdź od nazwy jednostki w journalu, a nie od nazwy pliku profilu. Instancja może nazywać się openvpn@, openvpn-client@, openvpn-server@ lub jakoś specyficznie dla dystrybucji, a zgadywanie nazwy prowadzi do niewłaściwego szablonu. Wyjście stanu podaje jednostkę, która faktycznie działała, i to jest jedyna nazwa, która ma tu znaczenie. Skopiuj ją dokładnie, wraz z ewentualnym sufiksem.

Poniższe polecenia opisują tę jednostkę bez zmieniania czegokolwiek. systemctl show raportuje ścieżkę fragmentu, ścieżkę źródła, stan pliku jednostki, ewentualne drop-iny i to, co ją uruchomiło. list-dependencies --reverse pokazuje, które wczytane jednostki wskazują na nią. Oba są tylko do odczytu, więc uruchom je, zanim sformułujesz teorię.

Zastąp zaobserwowaną nazwę wszędzie. Skopiowana przykładowa nazwa to najczęstszy sposób badania niewłaściwej usługi, a daje pewne siebie odpowiedzi o jednostce, która nigdy nie działała.

Przeczytaj szablon, aby poznać nazwę pliku

Jednostka instancji to rozwinięcie szablonu, a szablon decyduje, który plik konfiguracyjny czyta. Wiersz poleceń kończący się symbolem zastępczym dla instancji jest rozwijany do nazwy instancji plus sufiks. Jeśli sufiks to .conf, a instancja nazywa się old, plik to old.conf. Jeśli nazwiesz instancję old.conf, ten sam szablon poprosi o old.conf.conf.

Ten szczegół wyjaśnia pewną klasę duplikatów. Ktoś dodaje drugą instancję pod niewłaściwą nazwą, pierwsza nadal działa, a host kończy z dwoma tunelami i jednym mylącym logiem.

Czytaj efektywny szablon, a nie plik, który pamiętasz, że edytowałeś. Drop-in może zastąpić wiersz poleceń, a to zamiennik działa przy starcie.

Prześledź, jak trafia do transakcji startowej

Trzy drogi są częste: dowiązanie wants z celu, wymaganie innej jednostki albo jednostka wygenerowana przez generator pakietu. Lista odwrotnych zależności obejmuje dwie pierwsze jako wczytane wpisy grafu. Nie obejmuje timera, hooka ani żądania zewnętrznego, dlatego lista jest dowodem, a nie pełnym audytem.

Wygenerowane wyjście w /run/systemd/generator jest produktem, nie źródłem. Edycja przetrwa tylko do następnego generowania, dlatego poprawka tam zastosowana wygląda na udaną, a potem wraca.

Sprawdź udokumentowane wejście pakietu, zanim założysz, skąd czyta generator. Nieudokumentowane skanowanie katalogu to zwykły powód, dla którego jednostka pojawia się bez dowiązania aktywacji.

Usuń aktywację, nie tylko proces

Jeśli instancja jest bezpośrednio aktywowana i naprawdę przestarzała, systemctl disable --now zatrzymuje ją i usuwa dowiązanie startowe w jednym kroku. Najpierw sprawdź, czy ten tunel nie jest twoją jedyną drogą administracyjną do hosta. Polecenie jest przykładem cyklu życia, a nie sugestią zatrzymania każdego VPN na maszynie. Uruchom sprawdzenie przed poleceniem, nie po nim.

Dwie połowy są rozdzielne i często mylone. Wyłączenie nie zatrzymuje działającej usługi, a zatrzymanie nie usuwa aktywacji, więc częściowe polecenie wyjaśnia problem, który wraca przy starcie.

Wyłączona jednostka nadal może zostać uruchomiona przez inną jednostkę lub jawne żądanie. Gdy generator jest właścicielem aktywacji, popraw jego wejście zamiast wyłączać jego wyjście. Maskowanie blokuje więcej ścieżek, ale może psuć zależności, więc nie zastępuje zrozumienia.

Sprawdź restartem, a nie ekranem stanu

Przeładuj systemd, jeśli zmieniły się definicje jednostek lub wejścia generatora, a następnie sprawdź wynikowy stan. Przeładowanie demona nie wciska nowego profilu do działającego tunelu, więc oba sprawdzenia są osobne. Zaplanuj restart i potwierdź, że instancja pozostaje nieobecna, podczas gdy zamierzony tunel nadal działa.

Zachowaj stary profil, dopóki jego własność nie zostanie zrozumiana, a potem wycofaj go zamierzonym procesem. Sukces to nieobecna jednostka i działająca ścieżka dostępu, a nie nieudana jednostka brakująca na jednym ekranie.

Powiązane artykuły