Eu estou querendo executar um cliente OpenVPN em uma máquina Debian. Eu posso ver que o serviço está sendo executado:
# sudo service openvpn status
● openvpn.service - OpenVPN service
Loaded: loaded (/lib/systemd/system/openvpn.service; enabled; vendor preset: enabled)
Active: active (exited) since Thu 2017-12-28 19:01:14 UTC; 1h 8min ago
Process: 19416 ExecStart=/bin/true (code=exited, status=0/SUCCESS)
Main PID: 19416 (code=exited, status=0/SUCCESS)
E eu posso começar o OpenVPN através do daemon para que ele seja executado em segundo plano
# sudo openvpn --config /etc/openvpn/client.conf --daemon
Posso confirmar que ele está sendo executado como esperado por meio do registro, bem como verificar meu IP da WAN.
No entanto, posso parar o serviço OpenVPN ...
# sudo service openvpn stop
# sudo service openvpn status
● openvpn.service - OpenVPN service
Loaded: loaded (/lib/systemd/system/openvpn.service; enabled; vendor preset: enabled)
Active: inactive (dead) since Thu 2017-12-28 20:10:00 UTC; 37s ago
Process: 19416 ExecStart=/bin/true (code=exited, status=0/SUCCESS)
Main PID: 19416 (code=exited, status=0/SUCCESS)
Mas o daemon ainda está sendo executado em segundo plano e ainda estou conectado à VPN e ainda estou recebendo um endereço IP de VPN público.
Então, qual é a diferença entre o serviço e o daemon? Eles não são dependentes uns dos outros?
Meu objetivo é que o OpenVPN seja executado em segundo plano quando o computador é inicializado e para que ele continue sendo executado indefinidamente. Eu estava indo apenas para definir o serviço para ser executado na inicialização, mas as ações acima estão agora me confundindo sobre como realizar isso ...
Atualização: aqui está o arquivo: /lib/systemd/system/openvpn.service
# This service is actually a systemd target,
# but we are using a service since targets cannot be reloaded.
[Unit]
Description=OpenVPN service
After=network.target
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/bin/true
ExecReload=/bin/true
WorkingDirectory=/etc/openvpn
[Install]
WantedBy=multi-user.target