
Ich verwende OpenVPN auf Ubuntu sosudo openvpn --config vpnconfig.ovpn --daemon
Ich frage mich, ob es eine Möglichkeit gibt, die von mir gestartete OpenVPN-Verbindung zu stoppen/trennen, ohne den OpenVPN-Prozess zu beenden?
Antwort1
Deroffizielle Dokumentation zur Steuerung von OpenVPN-Prozessenist ziemlich klar: Man muss Signale verwenden. Normalerweise würde mannichtverwenden Sie jedoch SIGKILL.
Unter Linux akzeptiert OpenVPN die folgenden Signale:
- SIGUSR1 – Bedingter Neustart, konzipiert für den Neustart ohne Root-Rechte
- SIGHUP – Harter Neustart
- SIGUSR2 - Verbindungsstatistiken in eine Protokolldatei oder ein Syslog ausgeben
- SIGTERM, SIGINT -- Beenden
Sie würden sie wie folgt ausgeben kill -USR1 1234
, wobei 1234 die Prozess-ID des Prozesses ist, den Sie steuern möchten.
Wenn der Prozess an ein Terminal angeschlossen ist, drücken Sie einfach Ctrl+ C. Dadurch wird SIGINT an den Vordergrundprozess gesendet.
Wenn Sie mehrere OpenVPN-Prozesse unkontrolliert im Hintergrund laufen haben, sollten Sie diese Prozesse mit Systemd oder etwas Ähnlichem verwalten. Mit Systemd könnten es auch Benutzerdienste sein.
Wenn das nicht Ihr Ding ist, können Sie auch ein Tool wiehtopum den Prozess interaktiv über seine Befehlszeile zu identifizieren und dann direkt ein Signal zu senden.
Eine weitere Möglichkeit, die ebenfalls in den Dokumenten erwähnt wird, ist die Verwendung writepid /path/to/pid-file
innerhalb der OpenVPN-Konfigurationsdatei oder --writepid /path/to/pid-file
in der Befehlszeile. Sie würden dann diese Datei lesen, um die Prozess-ID herauszufinden.