Bagaimana saya bisa membuat Empathy coba lagi menghubungkan ketika memiliki masalah jaringan

9

Saya telah menambahkan Empathy ke daftar aplikasi yang terbuka secara default, dan itu dikonfigurasi untuk terhubung otomatis ke MSN ketika dimulai, tetapi ketika saya masuk ke laptop saya koneksi wifi membutuhkan beberapa detik untuk siap. Sebelum internet menyala, Empathy sudah mulai, mencoba masuk ke MSN dan gagal, dan saya tidak bisa menghubungkannya setelah itu.

Ini tampaknya menjadi bug di Empathy, tetapi bagaimana saya bisa memperbaikinya, atau jika tidak memungkinkan, bagaimana saya bisa menunda dimulainya sampai jaringan menyala?

Ricardo Reyes
sumber

Jawaban:

6

Rupanya ini adalah bug yang dikenal di Empathy, jadi saya memutuskan untuk meluncurkan Empathy dari skrip yang memeriksa apakah jaringannya aktif (terhubung ke http://www.google.com , detak jantung sejati internet :) Jika jaringan tidak berfungsi, itu akan tidur selama 5 detik dan coba lagi, sampai mencoba 30 kali

Ini skripnya (bernama 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

dan ini adalah bagaimana saya meluncurkannya dari menu "Aplikasi Startup":

~/scripts/waitfornet.py empathy
Ricardo Reyes
sumber
2

Kedengarannya seperti Empati mungkin memerlukan tambalan untuk melakukan hal semacam ini secara internal. Tetapi Anda harus dapat menyodok Empati untuk melakukan hal yang benar dengan memutuskan koneksi dari jaringan Anda dan menghubungkan kembali.

Saya sepertinya memiliki bug dengan Empathy yang menolak koneksi ke banyak jaringan di berbagai waktu. Tetapi harus memberikan hitungan mundur "Akan coba lagi dalam X detik."

Tetapi itu membutuhkan kode dan jika Anda menginginkannya, laporan bug perlu dibuat.

Martin Owens -doctormo-
sumber
1

Saya menulis naskah khusus untuk mengatasi masalah ini . Script ini (yang didasarkan pada python dan D-Bus) akan menghubungkan empati ke jaringan setiap kali ketika jaringan sedang online. Bahkan jika koneksi terputus dan terhubung kembali, skrip akan secara otomatis menyambungkan kembali empati lagi.

Semoga Anda menikmatinya. Silakan tinggalkan komentar jika Anda membutuhkan perbaikan.

Ishan Thilina Somasiri
sumber