我正在重新启动这样的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_supplicant & dhclient 也被杀死了。 因此,wifi接口掉线了。
有没有办法独立调用ifdown wlan0
和ifup wlan0
?
答案 0 :(得分:0)
如果您只是谈论WiFi,并且您已正确配置无线配置文件,
你也可以使用
wifi down; wifi
另外,您可以使用os.system包来运行terminal命令。