实现 WiFi 断线自动重连。原理是用 Python 监测网络是否断线,如果断线则重启网络服务。
1.Python 代码 autowifi.py,放在 /home/pi 目录下:
#!/usr/bin/python import os, time while True: if '192' not in os.popen('ifconfig | grep 192').read(): print '\n****** wifi is down, restart... ******\n' os.system('sudo /etc/init.d/networking restart') time.sleep(5*60) #5 minutes
2.Shell脚本autowifi.sh,也放在 /home/pi 目录下:
#!/bin/sh python /home/pi/autowifi.py &
3.开机自动启动以上脚本:在终端窗口执行以下命令即可
sudo cp -f /home/pi/autowifi.sh /etc/init.d/ sudo chmod +x /etc/init.d/autowifi.sh sudo chown root:root /etc/init.d/autowifi.sh sudo update-rc.d autowifi.sh defaults
每5分钟检测一次,若 WiFi 断线,则自动重新连接。
本文来自:树莓派实验室
链接地址:http://shumeipai.nxez.com/2017/01/25/raspberry-pi-wifi-broken-automatically-reconnect.html
链接地址:http://shumeipai.nxez.com/2017/01/25/raspberry-pi-wifi-broken-automatically-reconnect.html
不知道为什么我的树莓派3通过命令 ‘sudo /etc/init.d/networking restart’ 无法重启wifi,尝试了许多别的语句发现只有 sudo ifup wlan0 才有效果。然后把wifi检测的命令换成’sudo wpa_cli status’把第一部分的代码改成这个样子,供大家参考一下。
#!/usr/bin/python
import os,time
while True:
return1=os.system(‘sudo wpa_cli status’)#check wifi connection
if return1:
print(‘\n******wifi is down, restrart…***\n’)
os.system(‘sudo ifup wlan0’)
time.sleep(5*60) #5 minutes
感谢楼上反馈!
执行sudo update-rc.d autowifi.sh defaults的时候会提示错误Missing LBS Tags,核对了一下其他步骤并没有错,这条错误提示可以忽略吗?
666
可能是因为我太菜的原因,导入之后wifi模块和蓝牙模块变灰,请新手谨慎使用,解决办法删除导入的代码。