Задать вопрос

Как заставить опенВПН отключаться при закрытии терминала?

Доброго дня. Есть ярлык, который запускает опенВПН от имени другого юзера. открывается терминал и в нем запускается.
Но - при закрытии этого терминала, отключение опенВПН не происходит. Как это исправить? ну кроме как вручную kill делать

Ярлык -
[Desktop Entry]

Name=OpenVPN

Comment=Запуск OpenVPN от имени пользователя qwe-internet

Exec=sh -c "su -l qwe-internet -c 'DISPLAY=:0 openvpn --config /opt/123.ovpn'"

Terminal=true

Type=Application

Categories=Network;Application;
  • Вопрос задан
  • 573 просмотра
Подписаться 3 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 3
@pfg21
ex-турист
killall openvpn
sudo killall openvpn
закрывает все процессы с openvpn в имени

еще вариант есть ввиде команды самого опенвпн
openvpn session-manage --disconnect
но придется привязаться к сессии
Ответ написан
@Zerg89
Попробуй так поправить
#!/bin/bash
exit_script() { 
echo "Printing something special!" 
echo "Maybe executing other commands!" 
trap - SIGINT SIGTERM # clear the trap 
kill -- -$$ # Sends SIGTERM to child/sub processes } 
trap exit_script SIGINT SIGTERM 
echo "Some other text" 
#other commands here 
sleep infinity
Ответ написан
Комментировать
hint000
@hint000
у админа три руки
В ярлык:
Exec=sh -c "echo $$ | tee /tmp/qwe123.pid; su -l qwe-internet -c 'DISPLAY=:0 openvpn --config /opt/123.ovpn'"

В crontab добавить:
* * * * * ps -q $(cat /tmp/qwe123.pid) >/dev/null 2>&1 || команда-на-отключение-ovpn

В пределах одной минуты после закрывания окна (среднестатистически через полминуты) произойдёт отключение.
Принцип: тупо пишем номер процесса в файл, а кроном отлавливаем наличие процесса с таким номером.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы