ネットワークに問題があるときにEmpathyに接続を再試行させるにはどうすればよいですか


9

デフォルトで開くアプリケーションのリストにEmpathyを追加しました。起動時にMSNに自動接続するように設定されていますが、ラップトップにログインすると、wifi接続の準備が完了するまでに数秒かかります。ネットがアップする前に、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

これは、「スタートアップアプリケーション」メニューから起動する方法です。

~/scripts/waitfornet.py empathy

2

Empathyがこの種のことを内部で行うにはパッチが必要なようです。しかし、ネットワークから切断して再接続することで、Empathyを突いて正しいことを実行できるはずです。

Empathyがさまざまなタイミングで多数のネットワークへの接続を拒否するバグがあったようです。ただし、「X秒後に再試行します」というカウントダウンが表示されます。

しかし、これにはコードが必要です。必要に応じて、バグレポートを作成する必要があります。


1

私はこの問題を克服するために特別にスクリプトを書きまし。このスクリプト(これはpythonおよびD-Busに基づいています)は、ネットワークがオンラインになるたびに、共感をネットワークに接続します。接続がダウンして再接続しても、スクリプトは自動的に共感を再接続します。

あなたがそれを楽しむことを願っています。改善が必要な場合はコメントを残してください。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.