স্পষ্টতই এটি সহানুভূতির একটি পরিচিত বাগ, তাই আমি কোনও স্ক্রিপ্ট থেকে এমপथी চালু করার সিদ্ধান্ত নিয়েছি যা নেটওয়ার্কটি চালু আছে কিনা তা পরীক্ষা করে দেখায় ( http://www.google.com এ সংযুক্ত হচ্ছে , ইন্টারনেটের আসল হার্টবিট :) যদি নেটওয়ার্কটি কাজ না করে, এটি 5 সেকেন্ডের জন্য ঘুমাবে এবং 30 বার চেষ্টা না করা পর্যন্ত পুনরায় চেষ্টা করবে
এটি স্ক্রিপ্ট (নাম waforfornet.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