Czy istnieje sposób na uruchomienie skryptu przy każdym połączeniu z określoną siecią bezprzewodową?


14

Istnieje konkretna sieć bezprzewodowa, z którą się łączę, która wymaga użycia vpnc w celu uzyskania dostępu do Internetu. Jeśli utworzę skrypt, aby to zrobić, czy istnieje sposób, aby go skonfigurować, aby skrypt był uruchamiany przy każdym połączeniu z tą siecią? Żeby było jasne, nie chcę, aby ten skrypt działał z większością połączeń bezprzewodowych, tylko z jednym konkretnym.

Odpowiedzi:


6

Możesz użyć do tego upstart . Upstart jest w stanie wychwycić zdarzenie połączenia z siecią bezprzewodową (lub ogólnie siecią) i wykorzystać to jako warunek uruchomienia skryptu.

Upstart jest już używany przez wiele skryptów w Ubuntu i ostatecznie zastąpi wszystkie skrypty inicjujące System V podczas uruchamiania.


5

Menedżer sieci uruchamia WSZYSTKIE skrypty w katalogu /etc/NetworkManager/dispatcher.d/ (te należące do użytkownika root, które są wykonywalne, które nie są czytelne dla innych użytkowników i nie są setuid).

Zmienne środowiskowe są ustawiane i przekazywane do tego skryptu przez Menedżera sieci. Będziesz zainteresowany zmienną środowiskową CONNECTION_UUID (zawiera unikalny ciąg).

Aby rozwiązać problem (uruchom skrypt, gdy dana sieć bezprzewodowa jest podłączona):

1) znajdź identyfikator użytkownika interesującego Cię połączenia bezprzewodowego (zaglądając do odpowiedniego pliku połączenia w katalogu / etc / NetworkManager / system-connection /).

2) napisz skrypt bash (lub perl, python lub cokolwiek innego), który robi to, co chcesz, jeśli zmienna środowiskowa CONNECTION_UUID jest zgodna z identyfikatorem UUID sieci bezprzewodowej w (1) powyżej.

3) umieść ten skrypt w /etc/NetworkManager/dispatcher.d/ i odpowiednio ustaw właściciela i uprawnienia.

dalsza lektura: menedżer sieci man (i trochę grzebiąc po skryptach w wyżej wymienionych katalogach).


Na maszynie Natty, która ma Wi-Fi, ten katalog jest pusty. Czy to zależy od wersji systemu?
nealmcb
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.