***
Цель
После suspend/hibernate автоматически выполнять:
systemctl restart openvpn-client@io.service
чтобы туннель (tun0) сам поднимался без ручного рестарта.[3][4]
***
Шаг 1. Создать сервис
Создаём unit:
sudo nano /etc/systemd/system/openvpn-refresh.service
Содержимое:
[Unit]
Description=Restart OpenVPN client after resume
After=suspend.target
After=hibernate.target
[Service]
Type=oneshot
ExecStart=/usr/bin/systemctl restart openvpn-client@io.service
[Install]
WantedBy=suspend.target
WantedBy=hibernate.target
Смысл:
After=suspend.target/hibernate.target– запускать этот сервис после событий сна/гибернации.[1]Type=oneshot– одноразовая команда, которая сразу завершается.[5]ExecStart=systemctl restart openvpn-client@io.service– собственно перезапуск VPN‑клиента.[3]WantedBy=...– привязка сервиса к целямsuspendиhibernate, чтобы он запускался автоматически при выходе из этих состояний.[1]
***
Шаг 2. Активировать сервис
Применяем и включаем:
sudo systemctl daemon-reload
sudo systemctl enable openvpn-refresh.service
Теперь при каждом выходе из сна/гибернации systemd будет запускать openvpn-refresh.service, который перезапустит openvpn-client@io.service.[2][1]
***
Шаг 3. Проверка
1. Уйти в сон (через меню/systemctl suspend).
2. Разбудить ноут.
3. Проверить:
ip a show tun0
systemctl status openvpn-client@io.service
Если tun0 поднят и сервис в active (running), автоматический рестарт после sleep работает как задумано.[4][3]
[1](https://bbs.archlinux.org/viewtopic.php?id=204585)
[2](https://gist.github.com/3f25e1b99997e845e148)
[3](https://bbs.archlinux.org/viewtopic.php?id=256215)
[4](https://discussion.fedoraproject.org/t/openvpn-automatic-reconnect-of-tunnel-after-system-wakeup-from-standby/72390)
[5](https://blog.christophersmart.com/2016/05/11/running-scripts-before-and-after-suspend-with-systemd/)
[file-name 000320_2026-01-08_09-06-50.txt]