LINUX.ORG.RU
ФорумAdmin

Сторожевой таймер для vpn-соединения

 , ,


0

1

Я тут когда-то писал про проблему с xl2tpd: если сервер какое-то время недоступен, то клиент делает только ограниченное количество попыток переподключения. Решения не нашёл. Решил написать костыль: скрипт, периодически проверяющий наличие соединения и при отсутствии перезапускающий демон xl2tpd.

Однако он не всегда срабатывает, хотя в момент неработы висит в списке процессов (в выводе ps -ef). То есть, соединение не переустанавливается долгое время, а при ручном рестарте xl2tpd восстанавливается.

Запускается посредством директивы post-up в /etc/network/inrerfaces.

Вот скрипт:

#!/usr/bin/python
#-*- coding: utf-8 -*-
import os, time
while 1:
	time.sleep(100)
	if os.system('ifconfig ppp0') != 0 or (os.system('ping ya.ru -c 1') != 0 and os.system('ping google.com -c 1') != 0):
		print "restart"
		os.system('service xl2tpd restart')
	else:
		print "OK"

print-ы, естественно, в общем случае лишние, я их добавлял для проверки. Но под моим контролем, как я помню, работает. Хотя вечером ещё поковыряюсь.

Никто не видит упущения, из-за которого он может тупо висеть?

Кстати, может, кто подскажет, есть ли в настройках xl2tpd параметр, отключающий ограничение на количество попыток переподключения?

☆☆☆☆☆

os.system('service xl2tpd restart') Здесь сама команда рестарта не подвисает?

pylin ★★★★★
()
Ответ на: комментарий от snaf

VPN используется для подключения к интернет-провайдеру. Вдруг будет такая ситуация, что формально соединение есть, а не работает.

Ttt ☆☆☆☆☆
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.