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