python - 完全独立地从python脚本重启wifi接口(interface)

标签 python linux wifi

我正在像这样重新启动 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 接口(interface)被丢弃。

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

最佳答案

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

你也可以使用 wifi 关闭;无线网络

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

关于python - 完全独立地从python脚本重启wifi接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45340427/

相关文章:

python - 显式 cursor.close() 的必要性

c++ - 我们如何在 linux 中使用 c 或 c++ 调用系统函数,如 pwd 或 ls -l 而无需使用 system() 或 exec() 函数?

php - 从 Windows 迁移到 Linux 服务器,现在出现 session 错误

linux - 压缩文件并打印到标准输出

windows - 使用cmd通过WiFi远程关闭计算机

android - 我的 Android 应用程序出现错误

audio - 通过 Wifi 流式传输语音

python - 在 Python 中运行 Bash 命令

python - Python脚本与linux shell的交互

python - 如何获取包含特定文本的 <span> 标签的父级