¿Utiliza service o systemctl para controlar el demonio openvpn en el arranque?

11

Estoy trabajando en un sistema basado en Debian y todavía estoy aprendiendo acerca de systemctl vs service , pero estoy tratando de usar mi openvpnconfiguración como un caso de uso para trabajar en esto.

En mi configuración actual, estoy realmente confundido sobre cómo openvpnparece estar comenzando en el arranque y cómo administrarlos.

En el arranque, estos son los openvpnprocesos que se han iniciado:

> 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

Todavía no sé qué los controla para comenzar en el arranque.

El primer proceso es el servidor (que deseo deshabilitar), y el otro es el cliente que deseo mantener y seguir usando.

Entiendo que uno puede usar systemctlpara enumerar todos los servicios:

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

¿Cuáles son las diferencias entre estos dos? ¿Son estos los dos servicios que controlan los procesos anteriores? Si están deshabilitados, ¿por qué siguen comenzando en el arranque?

Si intento y uso servicepara obtener el estado de openvpn, obtengo:

> 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

Lo que me lleva a preguntar:

Si hay dos entradas en systemctl para openvpn, ¿cómo se llama la segunda cuando se usa service openvpn_2nd? status?

Por si acaso, hay un /etc/init.d/openvpnguión.

Cualquier idea sobre algunas de las preguntas anteriores sería muy apreciada.

doremi
fuente
¿Qué distribución estás ejecutando?
Seth
DietPi con Debian GNU / Linux 8 (jessie) Linux 3.14.79+
doremi

Respuestas:

18

OpenVPN no es el mejor lugar para comenzar si uno está aprendiendo systemd, porque OpenVPN no es un servicio simple.

OpenVPN es un servicio con plantilla en systemd. Se nombran las unidades de servicio , todas derivadas de un único archivo de unidad de servicio llamado . Entonces estás comenzando tu instancia conopenvpn@config.service[email protected]/etc/openvpn/server.conf

systemctl start [email protected]
y que se inicie automáticamente en bootstrap con

systemctl enable [email protected]
Obviamente, lo detiene y lo deshabilita con los comandos análogos.

Sin embargo, esto no es lo que está ejecutando su cliente OpenVPN. Para ubicar la unidad de servicio para eso, se puede ubicar el nombre de la unidad desde el nombre del grupo de control, ejecutando

systemd-cgls /

La no plantilla openvpn.servicese explica en el comentario en la parte superior de su archivo de unidad de servicio. Es algo más que, nuevamente, hace que esto sea algo más complejo de aprender como la primera experiencia de un novato de systemd.

Otras lecturas

JdeBP
fuente