在具有systemd和networkd的
Linux系统上,我需要在一个WLAN接口上操作WLAN接入点,同时在正常站(“客户端”)模式下进一步操作(热插拔)WLAN接口.
事实证明,wpa_supplicant.service在我的所有WLAN接口上都可以使用,如果只有所有这些WLAN接口都可以在站/客户端模式下运行,那就没问题了.但是,虽然wpa_supplicant.service服务于WLAN接口,但是不可能(不再是?)hostapd.service在AP接入点模式下操作该WLAN接口.
所以我想只为特定的接口禁用wpa_supplicant.service,比如说wls35u2.我的想法是有一个wpa_supplicant@wls35u2.service单元,我可以有选择地禁用,但是启用wpa_supplicant.service.但是,这似乎没有用,或者我在wpa_supplicant@wls35u2.service中做错了.
那么,如何在不全局禁用特定接口的情况下禁用WPA请求者服务呢?
解决方法
我有同样的问题. @Nproject找到了一个很好的解决方案.但是您不必修改每个程序.只需转到Nproject提到的文件的末尾(/ lib / dhcpcd / dhcpcd-hooks / 10-wpa_supplicant)并修改以下if子句:
原版的
if [ "$ifwireless" = "1" ] && \ type wpa_supplicant >/dev/null 2>&1 && \ type wpa_cli >/dev/null 2>&1 then case "$reason" in PREINIT) wpa_supplicant_start;; RECONFIGURE) wpa_supplicant_reconfigure;; DEPARTED) wpa_supplicant_stop;; esac fi
以这种方式添加[“$interface”!=“TheInterfaceWPASupplicantShouldBeDisabledOn”]:
改性
if [ "$ifwireless" = "1" ] && [ "$interface" != "TheInterfaceWPASupplicantShouldBeDisabledOn" ] && \ type wpa_supplicant >/dev/null 2>&1 && \ type wpa_cli >/dev/null 2>&1 then case "$reason" in PREINIT) wpa_supplicant_start;; RECONFIGURE) wpa_supplicant_reconfigure;; DEPARTED) wpa_supplicant_stop;; esac fi
此外,这将阻止任务栏中的网络管理器(GUI)显示此界面.