Как я могу заставить Empathy повторить попытку подключения, если у него возникли проблемы с сетью

Я добавил Empathy в список приложений, которые открываются по умолчанию, и он настроен на автоматическое подключение к MSN при запуске, но когда я подключаюсь к своему ноутбуку, подключение к Wi-Fi занимает несколько секунд, чтобы быть готовым. До того, как сеть подключилась, Empathy уже запустился, попытался войти в MSN и не смог, и после этого я не могу подключиться к нему.

Это, похоже, ошибка в Empathy, но как я могу исправить это, или, если это невозможно, как я могу отложить запуск до тех пор, пока сеть не подключится?

9
задан 28 July 2010 в 23:50

3 ответа

По-видимому, это - известная ошибка в Сочувствии, таким образом, я решил запустить Сочувствие из сценария, который проверяет, произошла ли сеть (соединяющийся с http://www.google.com, истинным heartbeat Интернета :) Если сеть не будет работать, то она будет спать в течение 5 секунд и повторной попытки, пока она не попробовала 30 раз

Это - сценарий (названный waitfornet.py)

#!/usr/bin/python

from urllib2 import urlopen, URLError
from subprocess import Popen
from time import sleep
from sys import argv

MAX_TRIES = 30
DELAY = 5

if len (argv) < 2:
    print ('Check for network connectivity and run a command once the net is up')
    print ('Tries up to %d times waiting %d seconds between each try' % (MAX_TRIES, DELAY))
    print ('\nUSAGE: python waitfornet.py <command to run>')
else:
    while True:
        MAX_TRIES -= 1
        if MAX_TRIES < 0:
            raise ValueError ('Reached the max iteration count and the net is still down')

        try:
            data = urlopen('http://www.google.com')
        except URLError:
            # if there's a problem connecting to google, that must mean
            # that the net is still down, so sleep 5 seconds and try again
            print ('Internet is down... retrying...')
            sleep (DELAY)
            continue

        # if you got here it means that the urlopen succeded
        pid = Popen([argv[1], ' '.join(argv[1:])]).pid
        break

и это - то, как я запускаю его из меню "Startup Applications":

~/scripts/waitfornet.py empathy
6
ответ дан 28 July 2010 в 23:50

Похоже, что Эмпатии может понадобиться патч для внутренних дел. Но вы должны быть в состоянии подтолкнуть Эмпатию к правильным действиям, отсоединившись от своей сети и снова подключившись.

У меня, по-видимому, были ошибки в том, что Эмпатия в разное время отказывалась подключаться к нескольким сетям. Но он должен дать обратный отсчет: «Повторить попытку через X секунд».

Но для этого потребуется код, и, если вы хотите, необходимо сделать отчет об ошибке.

0
ответ дан 28 July 2010 в 23:50

Я написал сценарий специально для преодоления этой проблемы . Этот скрипт (который основан на python и D-Bus) будет подключать сочувствие к сети каждый раз, когда сеть подключена к сети. Даже если соединение разорвется и снова подключится, скрипт автоматически снова подключит сопереживание.

Надеюсь, тебе понравится. Пожалуйста, оставьте комментарий, если вам нужны какие-либо улучшения.

0
ответ дан 28 July 2010 в 23:50

Другие вопросы по тегам:

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