2017-07-27 37 views
1

我重新啓動WiFi接口是這樣的:重新啓動WiFi接口完全independentely

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_supplica nt & dhclient也被殺死。 因此,wifi接口掉線了。

是否有任何方式相當獨立地調用ifdown wlan0ifup wlan0

回答

0

如果你只是在談論的WiFi,如果你有正確地配置您的無線配置文件,

你也可以使用 wifi down; wifi

此外,您還可以使用使用os.system包運行終端命令。