Desactiva Airport automáticamente cuando conectes tu Mac a un cable ethernet

Puede que necesites realizar esta tarea: cuando conectes tu Mac a una red ethernet, Airport debe desactivarse para ceder la conexión de forma inmediata a la red ethernet sin necesidad de hacerlo manualmente y recuperar la conexión inalámbrica cuando desconectes de nuevo el Mac de la red. para solucionarlo, hay una solución que implica crear un Daemon que ejecute un script.

Un demonio, daemon o dæmon (de sus siglas en inglés Disk And Execution MONitor), es un tipo especial de proceso informático que se ejecuta en segundo plano en vez de ser controlado directamente por el usuario (es un proceso no interactivo).

Este tipo de programas se ejecutan de forma continua (infinita), vale decir, que aunque se intente cerrar o matar el proceso, este continuará en ejecución o se reiniciará automáticamente. Todo esto sin intervención de terceros y sin dependencia de consola alguna. [Wikipedia]

Para ejecutar este truco en un Mac, necesitas crear un documento de texto plano con el nombre com.nombredetuempresa.ethernetmonitor y añadirle este texto:

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">

<plist version="1.0">

<dict>

<key>Label</key>

<string>com.nombredetuempresa.ethernetmonitor</string>

<key>ProgramArguments</key>

<array>

<string>/Library/Scripts/CompanyName/turnOffAirport.sh</string>

</array>

<key>WatchPaths</key>

<array>

<string>/Library/Preferences/SystemConfiguration</string>

</array>

</dict>

</plist>

Guarda el Daemon en Sistema > Librería > LaunchDaemons

Este DSaemon vigila el sistema en busca de cambios. Cuando el cambio se produce (es decir, cuando conectas un cable ethernet al Mac), automáticamente dispara un script de nombre turnOffAirport.sh que debes guardar en Librería > Scripts.

Para el script, crea un documento de texto plano y añádele este texto:

#!/bin/sh

if ifconfig en0 | grep 155.144;

then /usr/sbin/networksetup -setairportpower off

else

exit 0

fi

Deberás reiniciar para que el Daemon comience a ejecutarse y la funcionalidad se active.

Fuente: Mac OS X Hints

0 0 votos
Article Rating
Subscribe
Notify of
14 Comments
Oldest
Newest Most Voted
Opiniones Inline
Ver todos los comentarios
Deorum_Motu
Deorum_Motu
12 years ago

… pero, ¿sería posible la variante de utilizar una conexión por cada aplicación?. Me explico; usar Safari a través de ethernet y Firefox mediante wifi simultáneamente.

Saludetes.

Administrador
12 years ago

Esa es una de esas cosas que llevamos mucho tiempo buscando/pensando y que se nos ha preguntado en infinidad de ocasiones: poder usar “por aplicación” una conexión específica de red. pero de momento, me parece que es imposible.

Un saludo

—————
http://www.faq-mac.com

Anónimo
Anónimo
12 years ago

Porque cuando quitas el cable debería volver automáticamente a WiFi, ¿no?

metalazo
metalazo
12 years ago

… siempre da gusto tener daemons tan útiles, gracias.

una preguntita: ¿ si quisiera comprobar la actividad wifi (o navegar) del entorno mientras estoy conectado con ethernet a una Lan, permitiría activar airport momentáneamente o se corre el riesgo de sufrir desconexiones de la airport debido a que se activa constantemente el daemon?

salu2

sapset
sapset
12 years ago

no entiendo el concepto de “nombredetuempresa”

Que tiene que ver mi empresa con todo esto?

La extension del documento plano es .plist o es ethernetmonitor ?

Anónimo
Anónimo
12 years ago

Pues eso, me parece que no, pero como tampoco se demasiaod del tema me preguntaba si te reactivaria la airport al desenchufar el cable de red
Un saludo

rafapadi
rafapadi
12 years ago

En el script:

#!/bin/sh
if ifconfig en0 | grep 155.144;
then /usr/sbin/networksetup -setairportpower off
else
exit 0
fi

Por lo que he visto:

– Donde pone “155.144” se deben poner los datos propios de la dirección de red, u obviamente el script no funcionará nunca a menos que coincidan dichos datos.

– Donde pone “networksetup -setairportpower off” se debe poner entre “-setairportpower” y “off” el nombre del dispositivo o el script da error y tampoco funcionará.

Esto es lo que he visto o al menos, esto es lo que a mi me ha pasado.

Espero haber sido de alguna utilidad. Saludos cordiales, Rafa.

hmolina
hmolina
12 years ago

Hola,

La verdad es que es una utilidad curiosa :-D.

Si alguien quiere que se active la wireless en cuanto se desconecte el cable y viceversa, adjunto una breve modificación al script (también corrige la búsqueda del parámetro para activar la conexión de cable)

#!/bin/sh
if ifconfig en0 | grep inet;
then /usr/sbin/networksetup -setairportpower en1 off
else
STATUS=`/usr/sbin/networksetup -getairportpower en1 | grep Off | wc -l `
if [ $STATUS -gt 0 ]
then
/usr/sbin/networksetup -setairportpower en1 on
fi
fi
exit 0

Básicamente: primero busca el valor inet en la red de cable. Si existe es que tiene una dirección IP. Si la tiene, apaga la red inalámbrica. Si no tiene dirección IP la red de cable, revisa el estado de la red inalámbrica. Si está encendida, la deja en paz, si no, la enciende.

Hay que tener cuidado con este tipo de scripts, porque si en algún momento hay que apagar la red inalámbrica y no se está conectado a la red de cable, hay que desactivar el script.

Un saludo

H.

Anónimo
Anónimo
12 years ago

Muchas gracias por la modificación del script, ahora lo tengo un pelín mas claro el asunto.

Macho, que nivelazo está cogiendo faqmac últimamente.

Anónimo
Anónimo
12 years ago

¿Para eso no está la opción “Establecer orden de servicios…” en el panel de control Red ?

A lo mejor no he entendido el “conceto”.

hmolina
hmolina
12 years ago

Hola,

Si tienes el script activado y el cable de red conectado, te apagará la interfaz wireless constantemente. (es un ciclo infinito: al encender la red wireless cambias el directorio SystemPreferences, lo cual hace que se ejecute el script y te apague la interfaz….)

Si agregais al comienzo del script las siguientes lineas:

if [ -f /var/tmp/autochange_off ]
then
exit 0
fi

entonces solamente creando el fichero /var/tmp/autochange_off desactivais el funcionamiento del script, sin necesidad de desactivarlo globalmente.

Para crear el fichero:
touch /var/tmp/autochange_off

Borrarlo
rm /var/tmp/autochange_off

Done…..

metalazo
metalazo
12 years ago

… se agradecen los comentarios tan educativos.

salu2

Anónimo
Anónimo
12 years ago

El orden de los servicios no “apaga” el wireless, es decir, deja el AirPort activo y por tanto consumiendo energía.

La foto es un MacBook, por lo que es de entender que la idea es para ahorrar energía.

Anónimo
Anónimo
12 years ago

Ok en ese caso. Aunque en el enunciado no se habla de “apagar” el wi-fi

Por cierto ¿cuanto puede consumir el wifi si no se usa?

Saludos.

14
0
Me encantaría saber tu opinión, por favor, deja un comentariox
()
x