link down/up notification event

bigbillis | Τρί, 10/26/2010 - 18:54 | 2' | 2

Γειά σας, είμαι σε debian lenny και προσπαθώ να φτιάξω ένα script το οποίο κάτα τη πρώτη φάση θα μπορεί να αντιλαμβάνετε μια αποσύνδεση του καλωδίου ethernet ή τουλάχιστων να ελέγχει αν το interface eth0 είναι ενεργοποιημένο ή όχι και να συνδεθεί στο wlan σε περίπτωση αποσύνδεσης από το eth0. Έχω βρει 2 τρόπους για να ελέγχω αν το interface είναι up ή όχι. Μέσω του αρχείου proc/net/dev και μέσω ifconfig eth0 οπού με grep και wc -l μπορώ να εξάγω τη τιμή σε μια μεταβλητή. Προκειμένου να γλυτώσω το polling υπάρχει κάποιο event που να γίνετε trigger όταν η σύνδεση πέσει?

Ευχαριστώ εκ των προτέρων

Tags
Δώσε αστέρια!

MO: (ψήφοι: 0)

Σχόλια

Χμμμ, λογικά μέσω του DBUS θα γίνεται αυτό που θες. O NetworkManager δημιουργεί τέτοιου είδους γεγονότα στο DBUS, ίσως είναι αυτό που θες:

http://people.redhat.com/dcbw/NetworkManager/NetworkManager%20DBUS%20API.txt

http://software.intel.com/en-us/articles/detecting-network-connectivity-using-d-bus/

http://cweiske.de/tagebuch/DBus%20notify-send%20over%20network.htm

Πάντως, αν κάνεις τη δουλειά σου με poll (ρίξε μια ματιά κ στο sysfs, έχει πολύ πιο ενδιαφέρουσες πληροφορίες σε σχέση με το proc που κοντεύει να αποσυρθεί), μη μασάς με το polling.

Αν το βάλεις να κάνει poll κάθε 5 δευτερόλεπτα (ακόμα κ 1 δευτερόλεπτο, ή κ λιγότερο), είναι μια "αιωνιότητα" για τον υπολογιστή, δεν τον ενοχλείς/διακόπτεις καθόλου. Αν πάλι θες απλά να μάθεις πώς να το κάνεις καλύτερα, άσχετα από το αν χρειάζεται ή όχι, τότε μαζί σου ;)

-- gnu_labis

Το Linux ΔΕΝ είναι Windows!!!

Ευχαριστώ, σε πρώτη φάση θα χρησιμοποίησω το ethtools το οποίο παρέχει πληροφορία σε επίπεδο σύνδεσης.