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
openvpn@.service                              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é.


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.serviceopenvpn@.service/etc/openvpn/server.conf

systemctl start openvpn@server.service
et le faire démarrer automatiquement sur bootstrap avec

systemctl enable openvpn@server.service
É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

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.