A razão pela qual seu serviço reclama é que ele espera um argumento que ele não recebe: a posição do argumento é, no arquivo openvpn @ .service , onde quer que você veja i , em particular na linha
PIDFile=/var/run/openvpn/%i.pid
que também deve ser espelhado na linha ExecStart abaixo, onde você substituiu - writepid /var/run/openvpn/openvpn.pid para o que deveria ter sido legitimamente - writepid /run/openvpn/%i.pid.
A maneira correta de usar um serviço como somename @ .service é passar um argumento para ele: por exemplo
systemctl enable [email protected]
systemctl start [email protected]
Neste caso simples, o parâmetro passado ( cliente ) é apenas o nome do arquivo onde o PID do processo está armazenado, nada mais, para que você possa chamá-lo como quiser. Apenas certifique-se de renomear o arquivo de serviço para /lib/systemd/system/[email protected] como foi quando você o instalou, tenho certeza, e você está pronto para ir.
O motivo pelo qual o openvpn ainda funciona é que a única coisa que você perdeu foi o nome do arquivo PID, não a configuração openvpn.
Quanto aos outros dois erros, o segundo é um aviso, apenas observe (= use a opção auth-nocache no seu arquivo de configuração). E o segundo requer mais informações para diagnosticar, ie a mensagem de erro completa, o arquivo de configuração openvpn e a tabela de roteamento ( ip route show ) depois de ter configurado a VPN.