Estou trabalhando em um sistema baseado em debian e ainda estou aprendendo sobre systemctl vs service , mas estou tentando usar minha openvpn
configuração como um caso de uso para resolver 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, estes são os openvpn
processos 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 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 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 service
para 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/openvpn
script.
Qualquer insight sobre algumas das perguntas acima seria muito apreciado.
Respostas:
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 com
e tê-lo iniciar automaticamente no bootstrap com Obviamente, você para e desativa com os comandos análogos.openvpn@config.service
[email protected]
/etc/openvpn/server.conf
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
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
fonte