Wie kann ich Empathy dazu bringen, erneut eine Verbindung herzustellen, wenn ein Netzwerkproblem vorliegt?

9

Ich habe Empathy zur Liste der Anwendungen hinzugefügt, die standardmäßig geöffnet werden, und es ist so konfiguriert, dass beim Start eine automatische Verbindung zu MSN hergestellt wird. Wenn ich mich jedoch bei meinem Laptop anmelde, dauert es einige Sekunden, bis die WLAN-Verbindung fertig ist. Bevor das Netz aktiv ist, hat Empathy bereits begonnen, versucht, sich bei MSN anzumelden, und ist fehlgeschlagen. Danach kann ich keine Verbindung mehr herstellen.

Dies scheint ein Fehler in Empathy zu sein, aber wie kann ich eine Lösung dafür finden oder, wenn dies nicht möglich ist, den Start verzögern, bis das Netzwerk aktiv ist?

Ricardo Reyes
quelle

Antworten:

6

Anscheinend ist dies ein bekannter Fehler in Empathy, daher habe ich beschlossen, Empathy über ein Skript zu starten, das überprüft, ob das Netzwerk aktiv ist (Verbindung zu http://www.google.com , dem wahren Herzschlag des Internets :) Wenn das Netzwerk nicht funktioniert, Es wird 5 Sekunden lang schlafen und es erneut versuchen, bis es 30 Mal versucht hat

Dies ist das Skript (mit dem Namen 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

und so starte ich es über das Menü "Startanwendungen":

~/scripts/waitfornet.py empathy
Ricardo Reyes
quelle
2

Es hört sich so an, als ob Empathy möglicherweise einen Patch benötigt, um solche Dinge intern zu erledigen. Sie sollten jedoch in der Lage sein, Empathy anzutreiben, um das Richtige zu tun, indem Sie die Verbindung zu Ihrem Netzwerk trennen und die Verbindung wiederherstellen.

Ich hatte anscheinend Fehler mit Empathy, die zu verschiedenen Zeiten die Verbindung zu einer Reihe von Netzwerken verweigerten. Aber es sollte einen Countdown geben "Wird in X Sekunden erneut versuchen."

Dafür ist jedoch Code erforderlich, und wenn Sie dies wünschen, muss ein Fehlerbericht erstellt werden.

Martin Owens -doctormo-
quelle
1

Ich habe ein spezielles Skript geschrieben, um dieses Problem zu lösen . Dieses Skript (das auf Python und D-Bus basiert) verbindet jedes Mal, wenn das Netzwerk online ist, Empathie mit dem Netzwerk. Selbst wenn die Verbindung unterbrochen und die Verbindung wiederhergestellt wird, stellt das Skript die Empathie automatisch wieder her.

Hoffe es wird euch gefallen. Bitte hinterlassen Sie einen Kommentar, wenn Sie Verbesserungen benötigen.

Ishan Thilina Somasiri
quelle