जाहिरा तौर पर यह सहानुभूति में एक ज्ञात बग है, इसलिए मैंने सहानुभूति को एक स्क्रिप्ट से लॉन्च करने का फैसला किया है जो यह जांचता है कि क्या नेटवर्क ऊपर है ( http://www.google.com से कनेक्ट होने पर , इंटरनेट की सच्ची धड़कन :) अगर नेटवर्क काम नहीं कर रहा है, तो यह 5 सेकंड के लिए सोएगा और फिर से प्रयास करेगा, जब तक कि यह 30 बार कोशिश न करे
यह स्क्रिप्ट है (नाम wafornet.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