Так как я совершенно нуб в скриптинге, есть ли эффективный способ проверять каждую секунду существование интерфейса tun0 (соответствующего моему vpn), и если он не работает, то deluge перестанет скачивать?
Следующим шагом было бы возобновление, если tun0 снова работает, но давайте сначала выясним первый случай. Есть идеи?
Хорошо, кажется, я был слишком быстр. Я нашел частичное решение проблемы. Создайте файл check_tun0.sh
и сохраните его в /etc/NetworkManager/dispatcher.d
. Скрипт запускается с разрешениями root:root
.
Сценарий:
#!/bin/sh
# use tail - /var/log/syslog in terminal to check if it is executed the four lines help you spot easily
logger -s XXXXXXXXXX
logger -s $1
logger -s $2
logger -s XXXXXXXXXX
if [ $2 = "vpn-down" ]
then
# Stop downloads if vpn is down
deluge-console "pause *; quit"
fi
Почему команды не выполняются, в то время как они нормально работают в терминале? Я заменил команды deluge-console
на killall deluged
в качестве примера, и скрипт работает. Очевидно, я не могу запустить deluge-console
команды в скрипте. Это почему? Кроме того, у вас есть идея расширить это для поддержки возобновления загрузок после того, как tun0
будет повторно включен?