Utiliser service ou systemctl pour contrôler le démon openvpn au démarrage?

11

Je travaille sur un système basé sur Debian et j'apprends toujours sur systemctl vs service , mais j'essaie d'utiliser ma openvpnconfiguration comme cas d'utilisation pour travailler à travers cela.

Dans ma configuration actuelle, je suis vraiment confus quant à la façon dont openvpnsemble démarrer au démarrage et comment les gérer.

Au démarrage, ce sont les openvpnprocessus qui ont été démarrés:

> 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

Je ne sais toujours pas ce qui les contrôle pour démarrer au démarrage.

Le premier proc est le serveur (que je souhaite désactiver), et l'autre est le client que je souhaite conserver et continuer à utiliser.

Ma compréhension est que l'on peut utiliser systemctlpour répertorier tous les services:

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

Quelles sont les différences entre ces deux? Ces deux services contrôlent-ils les processus ci-dessus? S'ils sont désactivés, pourquoi démarrent-ils toujours au démarrage?

Si j'essaie d'utiliser servicepour obtenir le statut de openvpn, j'obtiens:

> 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

Ce qui m'incite à demander:

S'il y a deux entrées dans systemctl pour openvpn, quelle est la deuxième appelée lors de l'utilisation service openvpn_2nd? status?

Au cas où, il y a un /etc/init.d/openvpnscript.

Tout aperçu de certaines des questions ci-dessus serait grandement apprécié.

do Ré Mi
la source
Quelle distribution utilisez-vous?
Seth
DietPi avec Debian GNU / Linux 8 (jessie) Linux 3.14.79+
doremi

Réponses:

18

OpenVPN n'est pas le meilleur endroit pour commencer si l'on apprend systemd, car OpenVPN n'est pas un service simple.

OpenVPN est un service modélisé sous systemd. Les unités de service sont nommées , toutes dérivées d'un seul fichier d'unité de service nommé . Vous démarrez donc votre instance avecopenvpn@config.service[email protected]/etc/openvpn/server.conf

systemctl start [email protected]
et le faire démarrer automatiquement sur bootstrap avec

systemctl enable [email protected]
Évidemment, vous l'arrêtez et le désactivez avec les commandes analogues.

Ce n'est cependant pas ce qui exécute votre client OpenVPN. Pour localiser l'unité de service pour cela, on peut localiser le nom de l'unité à partir du nom du groupe de contrôle, en exécutant

systemd-cgls /

Le non-modèle openvpn.serviceest expliqué dans le commentaire en haut de son fichier d'unité de service. C'est quelque chose d'autre qui, encore une fois, rend cela plus complexe à apprendre en tant que première expérience d'un novice de systemd.

Lectures complémentaires

JdeBP
la source