<===

ProNotes

2026-01-08 09:06:50
Ниже компактная «памятка», как сделать отдельный сервис, который будет перезапускать OpenVPN после выхода ноутбука из сна/гибернации.[1][2]

***

## Цель

После `suspend/hibernate` автоматически выполнять:

```bash
systemctl restart openvpn-client@io.service
```

чтобы туннель (tun0) сам поднимался без ручного рестарта.[3][4]

***

## Шаг 1. Создать сервис

Создаём unit:

```bash
sudo nano /etc/systemd/system/openvpn-refresh.service
```

Содержимое:

```ini
[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. Активировать сервис

Применяем и включаем:

```bash
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. Проверить:

```bash
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/)
← Previous Next →
Back to list