Я тут когда-то писал про проблему с 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 параметр, отключающий ограничение на количество попыток переподключения?