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

9

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

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

Рикардо Рейес
источник

Ответы:

6

Очевидно, это известная ошибка в Empathy, поэтому я решил запустить Empathy из сценария, который проверяет, работает ли сеть (подключение к http://www.google.com , истинное сердцебиение интернета :) Если сеть не работает, он будет спать в течение 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
Рикардо Рейес
источник
2

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

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

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

Мартин Оуэнс -доктормо-
источник
1

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

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

Ишан Тилина Сомасири
источник