Wiersz poleceń zawierający --errors-to-stderr wygląda jak skarga, ale nią nie jest wygląda jak skarga, ale nią nie jest. Słowo należy do nazwy opcji, tak jak nazwa pliku dziennika nic nie mówi o tym, co zawiera plik. Zanim zmienisz jakąkolwiek konfigurację, ustal, co naprawdę czytasz.

Decyzja ma trzy gałęzie: wiersz jest samym uruchomieniem, wiersz jest wyjściem wydrukowanym przez program albo wiersz jest tekstem, który powtórzyła otoczka przed startem VPN. Każda gałąź wskazuje inne miejsce do sprawdzenia, a tylko jedna z nich jest komunikatem samego VPN.

Nazwa opcji nie jest komunikatem stanu

Dla Community OpenVPN, --errors-to-stderr kieruje wyjście błędów do standardowego błędu zamiast do standardowego wyjścia. To wybór strumienia, a nie filtr ważności, i nie tworzy błędu. Późniejszy --log lub --log-append może przekierować te same komunikaty do pliku, dlatego efekt flagi zależy od reszty polecenia. Dokumentacja logowania od źródła określa tę kolejność.

Obecność flagi mówi więc, dokąd trafiłyby błędy. Nie mówi, że jakiś wystąpił.

Linia uruchomienia czy wyjście procesu

Zacznij od pytania, kto wydrukował tekst. Jednostka usługi, pakiet aplikacji lub otoczka powłoki często powtarzają całe argv, zanim proces VPN coś zapisze. Tego echa nie da się odróżnić od linii stanu, jeśli widzisz tylko fragment.

Jeśli wiersz pochodzi od otoczki, VPN jeszcze nie działał i nie ma nic do zgłoszenia. Szukaj niżej w wyjściu pierwszego komunikatu ze znacznikiem czasu lub nazwą podsystemu.

Jeśli wiersz pochodzi od procesu VPN, to nadal tylko wywołanie. OpenVPN nie drukuje własnego wiersza poleceń jako błędu, a ważne komunikaty pojawiają się po nim.

Znajdź proces i jego wynik

Ustal, czy proces nadal działa. Klient, który działa i ponawia próby, wygląda zupełnie inaczej niż ten, który natychmiast zakończył pracę, a przed oboma stoi ten sam wiersz poleceń.

Następnie czytaj wynik przez komponent, który posiada proces. W systemd jest to dziennik jednostki; w aplikacji biurkowej jest to jej własny log lub konsola. Status wyjścia i ostatnie komunikaty odpowiadają na pytanie, na które nazwa opcji tylko napomyka.

Błąd analizy konfiguracji, brakujący plik, odrzucone dane logowania i przekroczenie czasu partnera to cztery różne zdarzenia. Przychodzą tym samym strumieniem. Wymagają czterech różnych poprawek. Zdecyduj, który masz, zanim dotkniesz profilu, i zacytuj dokładny komunikat, gdy prosisz o pomoc.

Kiedy flaga zasługuje na swoje miejsce

Flaga zasługuje na swoje miejsce, gdy stdout niesie dane, a błędy nie mogą ich zanieczyszczać, albo gdy otoczka przechwytuje oba strumienie osobno. W sesji na pierwszym planie w terminalu oba strumienie trafiają przed ciebie. W takim przypadku rozróżnienie rzadko zmienia to, co robisz.

Zachowaj ją, jeśli otaczający skrypt zależy od rozdzielenia. Usunięcie jej, bo nazwa wygląda alarmująco, zmienia miejsce pojawiania się komunikatów i nie naprawia niczego innego.

Czego nie zmieniać

Nie traktuj opcji jako kroku naprawczego. Jej usunięcie nie naprawi certyfikatu, trasy ani błędu uwierzytelniania.

Jeśli wywołanie zawiera --config stdin, konfiguracja jest podawana przez standardowe wejście. To osobna decyzja o tym, jak dostarczany jest plik. Zmieniaj jedną rzecz naraz i przeczytaj ponownie rzeczywisty komunikat, zanim zmienisz drugą.

Powiązane artykuły