Добавление задержки в сетевой интерфейс при загрузке

В настоящее время я работаю над проектом Raspberry Pi, запуском Ubuntu Mate 32 бит, RPi будет в море и подключается к Интернету через маршрутизатор 4G. Через VPN-сеть он отправляет данные на другой компьютер на земле, на которой запущен HMI. Также соединение VNC выполняется через VPN-соединение.

При загрузке он автоматически подключается к VPN-серверу.

Моя проблема (я думаю), что когда питание подается на систему, а RPi и роутер загружаются одновременно, RPi сначала загружается и пытается подключиться через сетевой интерфейс, но не может этого сделать, поскольку маршрутизатор еще не загружен вверх.

RPi постоянно пытается подключиться, пока маршрутизатор, наконец, не запустится. Однако этот процесс делает что-то для VPN-соединения, и я не могу получать данные из RPi в сети VPN, хотя обе машины подключены к сети VPN.

Если я перезагружу RPi и подключаюсь к маршрутизатору, он работает нормально, и я могу получать данные.

В качестве решения я хочу добавить 30-секундную задержку к сетевому интерфейсу, пытающемуся подключиться, давая маршрутизатору время для правильной загрузки.

Как я могу это сделать? Или у кого-нибудь есть лучшее предложение о том, как решить эту проблему?

В вашем системном сервисе вы можете настроить запуск VPN после подключения. Решением является изменение директивы After по файлу блока. Например, служба sshd находится в этом файле /etc/systemd/system/multi-user.target.wants/sshd.service и служба After Force после запуска после сети:

 [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 того, как [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 

Таким образом, вам нужно изменить After for VPN service, например vpn.service