Если вы пользуетесь OpenVPN GUI - эта заметка не для вас. Если же вы пользуетесь демоном - вот тут вам может и пригодиться этот поток сознания.
Итак, нам нужно запустить скрипт (в моем случае - монтирующий сетевые диски) после того, как OpenVPN подключился к сети.
Первым делом, создаем в конфиге строчку
Эта директива разрешает запуск внешних скриптов.
Сам скрипт можно запустить при помощи одной из двух директив конфига
up /usr/local/myscript1
# запуск после установки всех маршрутов
route-up /usr/local/myscript2
Один важнейший нюанс. Если ваш скрипт использует созданное сетевое подключение (а в моем случае было именно так) - подключается к сетевым дискам, чего-нибудь пингует или скачивает, то работать он не будет, т.к. на момент выполнения скриптов OpenVPN трафик по созданному подключению еще заблокирован.
Проблема решается достаточно легко.
От момента выполнения route-up (все маршруты созданы) до разрешения трафика задержка составляет примерно 0.5 секунды, что достаточно немного.
Итак, в нашем исполняемом скрипте (пусть для примера это будет /usr/local/myscript) мы либо увеличиваем таймауты на подключение (возьмем с запасом - секунд до 10), либо в начале прописываем sleep 5 (пауза на 5 секунд, время подбирается экспериментально).
Затем создаем второй скрипт - скрипт запуска /usr/local/myscript.run
; Запускаем скрипт в новом потоке
/usr/local/myscript &
и как раз его прописываем в OpenVPN.
Таким образом, наш основной скрипт запустится в отдельном потоке, управление вернется к OpenVPN, подключение полностью установится, к этому моменту закончится sleep в основном скрипте и все.
Конечно, решение малость топорное, но у меня работает "на ура". Приятного использования.