네트워크 문제가있을 때 Empathy가 연결을 재 시도하도록하는 방법


9

기본적으로 열리는 응용 프로그램 목록에 Empathy를 추가했으며 시작할 때 MSN에 자동 연결하도록 구성되어 있지만 랩톱에 로그인하면 wifi 연결이 준비되는 데 몇 초가 걸립니다. 인터넷이 가동되기 전에 Empathy는 이미 시작되었고 MSN에 로그인을 시도했지만 실패했습니다. 그 후에는 연결할 수 없습니다.

이것은 Empathy의 버그 인 것 같지만 어떻게 해결할 수 있습니까? 아니면 가능하지 않은 경우 네트워크가 시작될 때까지 시작을 지연시킬 수 있습니까?

답변:


6

분명히 이것은 Empathy의 알려진 버그이므로 네트워크가 작동 중인지 확인하는 스크립트 ( http://www.google.com에 연결 , 인터넷의 실제 하트 비트) 에서 Empathy를 시작하기로 결정했습니다 . 네트워크가 작동하지 않으면, 30 초 동안 시도 할 때까지 5 초 동안 잠자고 다시 시도합니다.

이 스크립트는 이름이 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 초 후에 다시 시도합니다"라는 카운트 다운이 표시되어야합니다.

그러나 코드가 필요하며 원하는 경우 버그 보고서를 작성해야합니다.


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.