Usar serviço ou systemctl para controlar o daemon openvpn na inicialização?

8

Estou trabalhando em um sistema baseado no Debian e ainda estou aprendendo sobre systemctl vs service , mas estou tentando usar minha configuração openvpn como um caso de uso para trabalhar com isso.

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

Na inicialização, esses são os processos openvpn 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 para começar na inicialização.

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

Meu entendimento é que é possível usar systemctl para 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 são os dois serviços que controlam os processos acima? Se eles estão desabilitados, por que eles ainda estão começando no boot?

Se eu tento usar service para obter o status de openvpn , obtenho:

> 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 o openvpn, qual é a segunda chamada ao usar service openvpn_2nd? status ?

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

Qualquer visão sobre algumas das questões acima seria muito apreciada.

    
por doremi 19.02.2017 / 23:00

1 resposta

8

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

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

systemctl start [email protected]
e tendo auto-start no bootstrap com
systemctl enable [email protected]
Obviamente, você para e desabilita com os comandos análogos.

Este não é o que está executando o seu cliente OpenVPN, no entanto. Para localizar a unidade de serviço para isso, pode-se localizar o nome da unidade a partir do 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, mais uma vez, torna isso uma coisa mais complexa para se aprender como a primeira experiência do principiante no systemd.

Leitura adicional

por 20.02.2017 / 06:52