我目前正在编写两个脚本,一个用于连接 wifi 网络,另一个用于断开连接。
连接脚本运行良好,但是当我完成时
sudo ifconfig wlan0 down
sudo ifconfig wlan0 up
即使 /etc/network/interfaces 中没有关于 wlan0 的内容,该接口也会自动重新连接到网络。
但是,如果我重新启动,wlan0 未连接。
这是我给你感兴趣的人的脚本
#!/bin/bash
SSID="ssid"
PASSWORD="pass"
CONF_FILE="/etc/wpa_supplicant/$SSID.conf"
if [ -f "$CONF_FILE" ]; then
echo "wpa configuration file already exists"
else
echo "wpa configuration file doesn't exists"
#Generating configuration file
sudo wpa_passphrase $SSID $PASSWORD > $CONF_FILE
#Delete the line containing the password
sudo sed -i '/$PASSWORD/d' $CONF_FILE
fi
#Connecting to network
sudo wpa_supplicant -c $CONF_FILE -i wlan0 &
我认为这是因为 wpa_supplicant 仍在后台运行,有人知道如何在不知道其 pid 的情况下杀死 wpa_supplicant 运行进程吗?
编辑:我确认它来自在后台运行的 wpa-supplicant。我发现解决它的唯一方法是调用
sudo killall wpa_supplicant
然而,这个解决方案并不能让我满意,想象一下我在另一个接口上运行了另一个 wpa_supplicant 实例,我将失去所有网络连接。很确定有更好的方法来终止与此特定接口关联的进程。我会四处挖掘。希望有人已经有这种情况。