Script berikut, dimasukkan ke dalam /etc/NetworkManager/dispatcher.d/99-disable-wireless-when-wired
, sebagian besar berfungsi — menonaktifkan nirkabel bahkan ketika saya ingin berbagi kabel dengan nirkabel atau sebaliknya.
Untuk melakukan ini, jalankan perintah berikut di terminal:
sudo nano /etc/NetworkManager/dispatcher.d/99-disable-wireless-when-wired
Dan rekatkan kode berikut ke dalam editor teks.
#!/bin/sh
myname=${0##*/}
log() { logger -p user.info -t "${myname}[$$]" "$*"; }
IFACE=$1
ACTION=$2
release=$(lsb_release -s -c)
case ${release} in
trusty|utopic) nmobj=nm;;
*) nmobj=radio;;
esac
case ${IFACE} in
eth*|usb*|en*)
case ${ACTION} in
up)
log "disabling wifi radio"
nmcli "${nmobj}" wifi off
;;
down)
log "enabling wifi radio"
nmcli "${nmobj}" wifi on
;;
esac
;;
esac
Kemudian simpan dan keluar.
Perhatikan kondisi berikut pada skrip, seperti yang didokumentasikan di halaman manual NetworkManager :
Setiap skrip harus:
- file biasa,
- dimiliki oleh root,
- tidak dapat ditulis oleh grup atau lainnya,
- tidak diatur-uid,
- dan dieksekusi oleh pemiliknya.
Alih-alih nmcli radio wifi off
(atau nmcli nm wifi off
untuk versi NetworkManager yang lebih lama), ada juga rfkill block wifi
. Namun, jika rfkill
digunakan sebagai ganti nmcli
, NetworkManager versi yang lebih baru akan mengaktifkan wifi kembali saat boot.
rfkill unblock wifi
setelah terhubungeth0
dan ingin berbagi, lalurfkill block wifi
setelah selesai?CONNECTION_UUID
ke pengidentifikasi untuk koneksi itu. Saya berpikir bahwa skrip dapat melakukan sesuatu seperti hanya menonaktifkan WiFi untuk koneksi yang telah saya nyatakan koneksi kabel "standar" tetapi biarkan diaktifkan jikaeth0
diaktifkan oleh koneksi yang berbeda. Saya belum mencobanya jadi saya tidak tahu apakah itu berhasil. Tapi poin Anda tentang mengendalikannya secara manual adalah bagus.eth0|usb0)
juga untuk menonaktifkan / mengaktifkan WiFi ketika tethering USB diaktifkan / dinonaktifkan.nmcli nm wifi off
dannmcli nm wifi on
. Tapi saya tidak punya alasan khusus untuk percaya bahwa perintah nmcli lebih baik. Saya hanya ingin melakukan semuanya dengan cara NetworkManager.