在 Ubuntu 14.04 上,我使用 USB 无线适配器连接到无线网络。连接经常断开(我已经尝试解决这个问题,但我不知道为什么。那是另一个问题。请参阅输出dmesg | grep wlan
这里)。
我的网络管理器有时可以自动重新连接,但有时却不能。
所以当它断开连接时,我经常不得不运行
sudo dhclient -v wlan1
重新连接。如果这不起作用,我会跑步
sudo wpa_supplicant -B -i wlan1 -c /etc/wpa_supplicant.conf
sudo dhclient -v wlan1
如果这不起作用,我也会rt2800usb
先重新加载其驱动程序:
sudo modprobe -r rt2800usb
sudo modprobe rt2800usb
sudo wpa_supplicant -B -i wlan1 -c /etc/wpa_supplicant.conf
sudo dhclient -v wlan1
我们如何在每次断开连接时自动运行命令,即自动重新连接?
答案1
wlan1
您可以获取from的状态/sys/class/net/wlan1/carrier
,这是一个示例脚本,用于每 2 秒检查一次 wifi 接口的状态,然后重新连接(替换sleep 2
为每秒检查一次连接n
):
while true
do
i=$(cat /sys/class/net/wlan1/carrier)
if [ $i == 1 ]
then
echo "connected"
else
echo "reconnecting"
killall wpa_supplicant
modprobe -rv rt2800usb
modprobe -v rt2800usb
wpa_supplicant -i wlan1 -c/etc/wpa_supplicant.conf -B
dhclient wlan1
echo "reconnected successfully"
fi
sleep 2
done
测试脚本
运行此脚本,然后打开一个新终端并运行killall wpa_supplicant
,您将再次重新连接。