我正在运行一个使用不同wifi网络的小型debian(版本7.1)框,并作为我通过相机发送给它的图像的中继。现在有时它会失去与网络的连接,如果发生这种情况,我想重新启动它的网络功能,只是为了让它真正正确连接。
在我早期的Linux时代,我学会了/etc/init.d/networking restart
。但显然这不适用于WPASupplicant。所以现在我正在尝试使用“wpa_action wlan0 restart;”,但这仍然不起作用。它似乎可以从命令行工作,但在python中使用os.system("wpa_action wlan0 restart;")
后,该框不会回到WIFI网络。
所以我的问题是: 重启所有网络活动的正确方法是什么?我如何从我的python脚本中做到这一点?
当我重新启动盒子时,它应该做所有事情,只是没有触及所有非网络相关的东西。
我的WPA请求者配置:
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=0
network={
id_str="home"
ssid="xxx"
scan_ssid=1
psk="xxx"
priority=5
}
network={
ssid="sender"
scan_ssid=1
psk="xxx"
priority=9
}
我的网络接口:
auto lo
iface lo inet loopback
allow-hotplug eth0
iface eth0 inet dhcp
allow-hotplug wlan0
iface wlan0 inet manual
wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
iface home inet dhcp
iface default inet dhcp
答案 0 :(得分:0)
我能够使用以下内容重新启动我的覆盆子pi的wifi:
import subprocess
subprocess.call(['sudo /sbin/ifdown wlan0 && sleep 10 && sudo /sbin/ifup --force wlan0'], shell=True)