답변:
분명히 이것은 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
Empathy는 이런 종류의 일을 내부적으로하기 위해 패치가 필요할 수 있습니다. 그러나 네트워크 연결을 끊고 다시 연결하여 Empathy가 올바른 작업을 수행하도록 찌를 수 있어야합니다.
Empathy에서 다양한 시간에 여러 네트워크에 대한 연결을 거부하는 버그가있는 것 같습니다. 그러나 "X 초 후에 다시 시도합니다"라는 카운트 다운이 표시되어야합니다.
그러나 코드가 필요하며 원하는 경우 버그 보고서를 작성해야합니다.
이 문제를 극복하기 위해 특별히 스크립트를 작성 했습니다 . 이 스크립트 (python 및 D-Bus를 기반으로 함)는 네트워크가 온라인 일 때마다 네트워크에 공감을 연결합니다. 연결이 끊어졌다가 다시 연결 되더라도 스크립트는 공감을 다시 자동으로 다시 연결합니다.
당신이 그것을 즐기시기 바랍니다. 개선이 필요한 경우 의견을 남겨주세요.