Verwenden Sie service oder systemctl, um den openvpn-Daemon beim Booten zu steuern?

11

Ich arbeite an einem Debian-basierten System und lerne immer noch etwas über systemctl vs service , versuche aber, meine openvpnKonfiguration als Anwendungsfall für die Bearbeitung dieses Systems zu verwenden .

In meinem aktuellen Setup bin ich wirklich verwirrt darüber, wie openvpnder Start zu starten scheint und wie man sie verwaltet.

Beim Booten wurden folgende openvpnProzesse gestartet:

> ps aux | ag 'openvpn'
nobody     952  0.0  0.0   5800  1108 ?        Ss   13:29   0:00 /usr/sbin/openvpn --daemon ovpn-server --status /run/openvpn/server.status 10 --cd /etc/openvpn --config /etc/openvpn/server.conf
root      1537  0.0  0.1   6088  2544 ?        Ss   13:30   0:00 /usr/sbin/openvpn --daemon --auth-nocache --config /root/.vpn_conf/pia.ovpn

Ich weiß immer noch nicht, was diese steuert, um beim Booten zu starten.

Der erste Prozess ist der Server (den ich deaktivieren möchte), und der andere ist der Client, den ich behalten und weiterhin verwenden möchte.

Mein Verständnis ist, dass man verwenden kann, systemctlum alle Dienste aufzulisten:

> systemctl list-unit-files --type=service | ag 'openvpn'
openvpn.service                               disabled
[email protected]                              disabled

Was sind die Unterschiede zwischen diesen beiden? Steuern diese beiden Dienste die oben genannten Prozesse? Wenn sie deaktiviert sind, warum starten sie immer noch beim Booten?

Wenn ich versuche service, den Status von zu erhalten openvpn, erhalte ich:

> service openvpn status
● openvpn.service - OpenVPN service
   Loaded: loaded (/lib/systemd/system/openvpn.service; disabled)
   Active: active (exited) since Sun 2017-02-19 13:29:51 PST; 18min ago
  Process: 936 ExecStart=/bin/true (code=exited, status=0/SUCCESS)
 Main PID: 936 (code=exited, status=0/SUCCESS)
   CGroup: /system.slice/openvpn.service

Feb 19 13:29:51 systemd[1]: Started OpenVPN service

Was mich dazu veranlasst zu fragen:

Wenn es in systemctl zwei Einträge für openvpn gibt, wie heißt der zweite bei Verwendung service openvpn_2nd? status?

Nur für den Fall, es gibt ein /etc/init.d/openvpnSkript.

Jeder Einblick in einige der oben genannten Fragen wäre sehr dankbar.

doremi
quelle
Welche Distribution läufst du?
Seth
DietPi mit Debian GNU / Linux 8 (Jessie) Linux 3.14.79+
Doremi

Antworten:

18

OpenVPN ist nicht der beste Startpunkt, wenn man systemd lernt, da OpenVPN kein einfacher Dienst ist.

OpenVPN ist ein Templatized Service unter systemd. Die Serviceeinheiten sind benannt , die alle aus einer einzigen abgeleiteten Service Unit - Datei benannt . Sie starten Ihre Instanz also mitopenvpn@config.service[email protected]/etc/openvpn/server.conf

systemctl starte [email protected]
und es automatisch auf Bootstrap starten mit

systemctl enable [email protected]
Offensichtlich stoppen und deaktivieren Sie es mit den analogen Befehlen.

Dies ist jedoch nicht das, was Ihren OpenVPN-Client ausführt. Um die Serviceeinheit dafür zu finden, kann man den Einheitennamen aus dem Kontrollgruppennamen durch Ausführen suchen

systemd-cgls /

Die Nichtvorlage openvpn.servicewird im Kommentar oben in der Serviceeinheitendatei erläutert. Es ist etwas anderes, das es wiederum komplexer macht, dies als erste Erfahrung eines Anfängers mit systemd zu lernen.

Weiterführende Literatur

JdeBP
quelle