Utwórz dwa proste „skrypty”, nazwa skryptu nie jest ważna (po prostu używam wlan) i zakładam, że istnieje tylko jeden interfejs sieciowy z kablami, i dlatego nazywa się „eth0” ... Sprawdź to za pomocą „ifconfig”, jeśli nie jestem pewien. Pamiętaj, że to całkowicie wyłączało sieć bezprzewodową, nie tylko wlan0. (Problem występuje tylko wtedy, gdy masz wiele interfejsów WLAN i chcesz tylko wyłączyć określone)
Skrypty te można łatwo dostosować - logiką logiczną - do sytuacji, w której masz dwa lub więcej okablowanych interfejsów sieciowych.
Upewnij się, że te skrypty można wykonać za pomocą „chmod + x”
/etc/network/ip-up.d/wlan
#!/bin/sh
# If eth0 goes up, disable wireless
if [ "$IFACE" = "eth0" ]; then
dbus-send --system --type=method_call --dest=org.freedesktop.NetworkManager /org/freedesktop/NetworkManager org.freedesktop.DBus.Properties.Set string:org.freedesktop.NetworkManager string:WirelessEnabled variant:boolean:false
fi
/etc/network/if-down.d/wlan
#!/bin/sh
# If eth0 goes down, enable wireless
if [ "$IFACE" = "eth0" ]; then
dbus-send --system --type=method_call --dest=org.freedesktop.NetworkManager /org/freedesktop/NetworkManager org.freedesktop.DBus.Properties.Set string:org.freedesktop.NetworkManager string:WirelessEnabled variant:boolean:true
fi
Włącza / wyłącza połączenia bezprzewodowe w NetworkManager, który zwykle można znaleźć jako wskaźnik systemu w panelu Gnome.
Możesz także użyć „ifconfig wlan0 down” lub „ifconfig wlan0 up” zamiast linii dbus-send, ale powinno to być bardziej przyjazne dla użytkownika i mniej zakłócać narzędzia systemowe Ubuntu.
Testowany z Ubuntu Desktop 10.10 i powinien działać z wcześniejszymi wersjami lub innymi dystrybucjami przy użyciu NetworkManager i dbus.