繁体   English   中英

从python脚本完全独立地重新启动wifi接口

[英]Restart wifi interface from a python script completely independentely

我正在重新启动wifi界面,如下所示:

interface = 'wlan0'
proc = subprocess.Popen(['ifdown {}'.format(interface)], shell=True)
proc.communicate()
proc.wait()
time.sleep(1)
proc = subprocess.Popen(['ifup {}'.format(interface)], shell=True)
proc.communicate()
proc.wait()

成功连接后,我看到的是wpa_supplicant和dhclient进程,如下所示:

root     19627     1  0 02:22 ?        00:00:00 /bin/sh -c /usr/bin/python3 /opt/awaregui/bin/app.py >>/var/log/awaregui_error.log
root     19628 19627 57 02:22 ?        00:00:16 /usr/bin/python3 /opt/awaregui/bin/app.py
root     19791     2  0 02:22 ?        00:00:00 [kworker/1:1]
root     19833     1  0 02:22 ?        00:00:00 /sbin/wpa_supplicant -s -B -P /run/wpa_supplicant.wlan0.pid -i wlan0 -D nl80211,wext -c /etc/wpa_supplicant/wpa_supplicant.conf
root     19855     2  0 02:23 ?        00:00:00 [kworker/u8:2]
root     19859     2  0 02:23 ?        00:00:00 [kworker/3:1]
root     19961     1  0 02:23 ?        00:00:00 dhclient -v -pf /run/dhclient.wlan0.pid -lf /var/lib/dhcp/dhclient.wlan0.leases wlan0

(进程ID为19833和19961)

问题是,如果我停止父python脚本,则wpa_supplicantdhclient也会被杀死。 因此,wifi接口掉线了。

有什么方法可以非常独立地调用ifdown wlan0ifup wlan0吗?

如果您只是在谈论WiFi,并且已正确配置了无线配置文件,

您也可以使用wifi down; wifi wifi down; wifi

另外,您可以使用os.system包运行终端命令。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM