***

Цель

После 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]