Я бы добавил простой shell-скрипт в кронтаб, который бы периодически пинговал известный хост и перезапускал службу, если хост недоступен.
Что-то вроде этого:
#!/bin/sh
ping -q -c3 google.com &> /dev/null
if [[ $? != "0" ]]
then
ppp_restart_command
fi
Назовите его, например, conn_check.sh
, добавьте его в crontab и пусть он запускается каждые 60 секунд.
Сегодня я боролся с этим и на данный момент нашел два основных решения:
netplan apply
на @reboot
, но, похоже, слишком много предостережений . netplan apply
после монтирования. Я выбираю вариант 2, и вот файл модуля systemd:
[Unit]
Description=Execute netplan apply after mount
After=multi-user.target mnt.mount
[Service]
Type=oneshot
ExecStart=/bin/sh -c "netplan apply"
[Install]
WantedBy=multi-user.target
Сохраните его под /etc/systemd/system/network-after-mount.service
и перейдите systemctl enable network-after-mount
. Перезагрузитесь для проверки.
В нашем случае это внутренний USB-накопитель, который монтируется под /mnt/
и содержит дополнительные файлы конфигурации netplan. Если вы смонтируете свой диск по другому пути, сгенерированный модуль монтирования systemd будет называться по-другому. Вы можете перечислить единицы крепления с помощью
systemctl list-units --type=mount
и определите, какой из них является правильным.