Eine Befehlszeile mit --errors-to-stderr sieht wie eine Beschwerde aus und ist keine. Das Wort gehört zu einem Optionsnamen, so wie der Name einer Protokolldatei nichts darüber sagt, was die Datei enthält. Bevor Sie irgendeine Konfiguration ändern, stellen Sie fest, was Sie tatsächlich lesen.

Die Entscheidung hat drei Zweige: Die Zeile ist der Start selbst, die Zeile ist Ausgabe, die das Programm ausgegeben hat, oder die Zeile ist Text, den ein Wrapper vor dem Start des VPN wiederholt hat. Jeder Zweig zeigt auf eine andere Stelle zum Nachsehen, und nur einer davon ist die eigene Meldung des VPN.

Ein Optionsname ist keine Statusmeldung

Für Community OpenVPN, --errors-to-stderr leitet Fehlerausgaben an den Standardfehlerstrom statt an die Standardausgabe. Das ist eine Wahl des Stroms, kein Schweregradfilter, und es erzeugt keinen Fehler. Ein späteres --log oder --log-append kann dieselben Meldungen in eine Datei umleiten, weshalb die Wirkung des Flags vom Rest des Befehls abhängt. Die Logging-Referenz der Quelle legt diese Reihenfolge fest.

Das Vorhandensein des Flags sagt also, wohin Fehler gingen. Es sagt nicht, dass einer aufgetreten ist.

Startzeile oder Prozessausgabe

Fragen Sie zuerst, wer den Text ausgegeben hat. Eine Service-Einheit, ein Anwendungspaket oder ein Shell-Wrapper wiederholt oft das vollständige argv, bevor der VPN-Prozess etwas schreibt. Dieses Echo ist von einer Statuszeile nicht zu unterscheiden, wenn Sie nur ein Fragment sehen.

Kam die Zeile vom Wrapper, ist das VPN noch nicht gelaufen und hat nichts zu melden. Suchen Sie weiter unten in der Ausgabe nach der ersten Meldung mit Zeitstempel oder Subsystemnamen.

Kam die Zeile vom VPN-Prozess, ist sie immer noch nur der Aufruf. OpenVPN gibt seine eigene Befehlszeile nicht als Fehler aus, und die wichtigen Meldungen folgen danach.

Prozess und Ergebnis finden

Stellen Sie fest, ob der Prozess noch läuft. Ein Client, der läuft und erneut versucht, sieht ganz anders aus als einer, der sofort beendet wurde, und dieselbe Befehlszeile steht vor beiden.

Lesen Sie das Ergebnis dann über die Komponente, der der Prozess gehört. Unter systemd ist das das Journal der Einheit; in einer Desktop-App ist es das eigene Protokoll oder die Konsole der App. Der Exit-Status plus die letzten Meldungen beantworten die Frage, auf die der Optionsname nur hindeutet.

Ein Konfigurations-Parsefehler, eine fehlende Datei, ein abgelehnter Berechtigungsnachweis und ein Peer-Timeout sind vier verschiedene Ereignisse. Sie kommen auf demselben Strom an. Sie brauchen vier verschiedene Korrekturen. Entscheiden Sie, welches Sie haben, bevor Sie das Profil anfassen, und zitieren Sie die genaue Meldung, wenn Sie um Hilfe bitten.

Wann das Flag seinen Platz verdient

Das Flag verdient seinen Platz, wenn stdout Daten trägt und Fehler sie nicht verunreinigen dürfen, oder wenn ein Wrapper die beiden Ströme getrennt auffängt. In einer Vordergrundsitzung in einem Terminal landen beide Ströme vor Ihnen. In diesem Fall ändert die Unterscheidung selten, was Sie tun.

Behalten Sie es, wenn das umgebende Skript von der Trennung abhängt. Es zu entfernen, weil der Name alarmierend aussieht, ändert, wo Meldungen erscheinen, und behebt nichts anderes.

Was Sie nicht ändern sollten

Behandeln Sie die Option nicht als Reparaturschritt. Ihr Löschen kann kein Zertifikat, keine Route und keinen Authentifizierungsfehler beheben.

Wenn der Aufruf --config stdin enthält, wird die Konfiguration über die Standardeingabe zugeführt. Das ist eine separate Entscheidung darüber, wie die Datei bereitgestellt wird. Ändern Sie jeweils eine Sache, und lesen Sie die tatsächliche Meldung erneut, bevor Sie die zweite ändern.

Ähnliche Artikel