Adicionar atraso à interface de rede na inicialização

1

Atualmente estou trabalhando em um projeto do Raspberry Pi, rodando Ubuntu Mate 32 bit, O RPi vai estar no mar e se conecta à internet através de um roteador 4G. Através da rede VPN, envia dados para outro computador em terra que está executando uma IHM. Além disso, uma conexão VNC é executada através da conexão VPN.

Na inicialização, ele se conecta automaticamente a um servidor VPN.

Meu problema é (eu acho) que quando a energia é aplicada ao sistema e o RPi e o roteador inicializa simultaneamente, o RPi inicializa primeiro e tenta se conectar via interface de rede, mas não consegue, já que o roteador é ainda não inicializou.

O RPi tenta se conectar continuamente até que o roteador esteja finalmente funcionando. No entanto, esse processo faz algo com a conexão VPN e não consigo receber dados do RPi na rede VPN, mesmo que as duas máquinas estejam conectadas à rede VPN.

Se eu reinicializar o RPi e conectar-me ao roteador, ele funcionará bem e eu poderei receber dados.

Como solução, quero adicionar um atraso de 30 segundos na interface de rede tentando conectar, dando tempo ao roteador para inicializar corretamente.

Como posso fazer isso? Ou alguém tem uma sugestão melhor sobre como resolver este problema?

    
por user222573 24.03.2017 / 11:33

1 resposta

1

Em seu serviço systemd você pode configurar para iniciar a VPN após a conexão estar ok. A solução é alterar a diretiva After no arquivo da unidade. Por exemplo, sshd service está neste arquivo /etc/systemd/system/multi-user.target.wants/sshd.service e a opção After força o serviço a iniciar após a rede:

[Unit]
Description=OpenSSH Daemon
Wants=sshdgenkeys.service
After=network.target

[Service]
ExecStart=/usr/bin/sshd -D
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=always

[Install]
WantedBy=multi-user.target

Você precisa alterar After para o serviço de VPN, como vpn.service

    
por 24.03.2017 / 13:01