Existe-t-il un moyen d'exécuter un script chaque fois que je me connecte à un réseau sans fil spécifique?

14

Il y a un réseau sans fil spécifique auquel je me connecte qui m'oblige à utiliser vpnc pour accéder à Internet. Si je crée un script pour ce faire, existe-t-il un moyen de le configurer pour que chaque fois que je me connecte à ce réseau, le script soit exécuté? Pour être clair, je ne veux pas que ce script s'exécute avec la plupart des connexions sans fil, juste une spécifique.

Eugene M
la source

Réponses:

6

Vous pouvez utiliser upstart pour cela. Upstart est capable d'attraper l'événement de connexion à un réseau sans fil (ou à un réseau en général) et de l'utiliser comme condition préalable à l'exécution de votre script.

Upstart est déjà utilisé par de nombreux scripts dans Ubuntu et remplacera éventuellement tous les scripts d'initialisation System V au démarrage.

txwikinger
la source
5

Network Manager exécute TOUS les scripts du répertoire /etc/NetworkManager/dispatcher.d/ (ceux appartenant à root, qui sont exécutables, qui ne sont pas lisibles par les autres utilisateurs, et non setuid).

Les variables d'environnement sont définies et transmises à ce script par le gestionnaire de réseau. Vous serez intéressé par la variable d'environnement CONNECTION_UUID (contient une chaîne unique).

Donc, pour résoudre votre problème (exécutez un script lorsqu'un réseau sans fil particulier est connecté à):

1) découvrez l'uuid de la connexion sans fil qui vous intéresse (en consultant le fichier de connexion approprié dans le répertoire / etc / NetworkManager / system-connections /).

2) écrire un script bash (ou perl, ou python, ou autre) qui fait ce que vous voulez si la variable d'environnement CONNECTION_UUID est une correspondance avec l'uuid du réseau sans fil dans (1) ci-dessus.

3) mettez ce script dans /etc/NetworkManager/dispatcher.d/ et définissez le propriétaire et les autorisations de manière appropriée.

Lectures complémentaires: man networkmanager (et un peu fouillant les scripts dans les répertoires mentionnés ci-dessus).

finley
la source
Sur une machine Natty qui est en wi-fi, ce répertoire est vide. Cela dépend-il de la version du système?
nealmcb