Use service ou systemctl para controlar o daemon openvpn na inicialização?

11

Estou trabalhando em um sistema baseado em debian e ainda estou aprendendo sobre systemctl vs service , mas estou tentando usar minha openvpnconfiguração como um caso de uso para resolver isso.

Na minha configuração atual, estou realmente confuso sobre como openvpnparece estar iniciando na inicialização e como gerenciá-los.

Na inicialização, estes são os openvpnprocessos que foram iniciados:

> 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

Ainda não sei o que está controlando isso para iniciar na inicialização.

O primeiro proc é o servidor (que desejo desabilitar) e o outro é o cliente que desejo manter e continuar a usar.

Meu entendimento é que se pode usar systemctlpara listar todos os serviços:

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

Quais são as diferenças entre esses dois? Esses dois serviços estão controlando os processos acima? Se eles estão desativados, por que eles ainda estão iniciando na inicialização?

Se eu tentar usar servicepara obter o status de openvpn, recebo:

> 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

O que me leva a perguntar:

Se houver duas entradas no systemctl para openvpn, qual é a segunda chamada ao usar service openvpn_2nd? status?

Apenas no caso, há um /etc/init.d/openvpnscript.

Qualquer insight sobre algumas das perguntas acima seria muito apreciado.

do RE Mi
fonte
Que distro você está executando?
Seth
DietPi com Debian GNU / Linux 8 (jessie) Linux 3.14.79+
doremi

Respostas:

18

O OpenVPN não é o melhor lugar para começar se alguém estiver aprendendo systemd, porque o OpenVPN não é um serviço simples.

O OpenVPN é um serviço de modelo no systemd. As unidades de serviço são nomeadas , todas derivadas de um único arquivo de unidade de serviço chamado . Então você está iniciando sua instância comopenvpn@config.service[email protected]/etc/openvpn/server.conf

systemctl start [email protected]
e tê-lo iniciar automaticamente no bootstrap com

systemctl enable [email protected]
Obviamente, você para e desativa com os comandos análogos.

Porém, não é isso que está executando o seu cliente OpenVPN. Para localizar a unidade de serviço para isso, é possível localizar o nome da unidade no nome do grupo de controle, executando

systemd-cgls /

O não modelo openvpn.serviceé explicado no comentário na parte superior do arquivo da unidade de serviço. É outra coisa que, novamente, torna isso uma coisa mais complexa para aprender como a primeira experiência do novato em systemd.

Leitura adicional

JdeBP
fonte