ฉันจะทำให้ 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.