树莓派zero W断线自动重连WiFi

前言

树莓派系统版本 Raspbian 10 buster

代码参考:https://github.com/dweeber/WiFi_Check/blob/master/WiFi_Check

尝试了网上许多解决方案,但都遇到一些问题而无法实现自动重连,现在给出自己尝试修改,并且测试成功的

问题描述

在树莓派zero W WiFi断网后,不会自动重连,手动使用

sudo ifdown wlan0 ;sudo ifup wlan0 
(显示错误信息unknown interface wlan0,在这个系统版本不能使用)

或者

sudo /etc/init.d/networking restart

命令都不会自动重连

解决方案

首先在/usr/local/bin/创建可执行文件

vim /usr/local/bin/WiFi_Check

输入下面的shell脚本

#!/bin/bash
wlan='wlan0'
#检查WiFi连接情况
echo
echo "开始检查  $wlan"
echo

if ifconfig $wlan |grep -q "inet"; then
    echo "WiFi已连接"
else
    echo "WiFi失联"
    sudo wpa_supplicant -B -i $wlan -c /etc/wpa_supplicant/wpa_supplicant.conf
    sleep 5
    sudo dhclient $wlan
fi

echo
echo "当前设置:"
ifconfig $wlan | grep "inet"
echo
exit 0

加执行权限

sudo chmod +x /usr/local/bin/WiFi_Check

使用系统级crontab,创建一个每隔5分钟就执行的命令

sudo vim /etc/crontab

在最后一行加上

*/5 *   * * *   root    /usr/local/bin/WiFi_Check

文件路径要填写正确,可以根据自己的更改
保存之后无需重启,这时候应该就可以自动断线重连了

提示

使用ifconfig查看网卡名称,然后将脚本中wlan的值改成对应名称

猜你喜欢

转载自blog.csdn.net/ShakeChord/article/details/107806519