不确定标题是否正确解释了我的情况,但详细情况如下:
我正在编写一个简单的 bash 脚本来设置无线网络,使用 wlp2s0 接口。
ip route flush dev wlp2s0
ip addr flush dev wlp2s0
ip link set wlp2s0 down
killall wpa_supplicant
ip link set wlp2s0 up
ip addr add 192.168.1.200/24 dev wlp2s0
ip route add default via 192.168.1.1
wpa_supplicant -B -D wext -i wlp2s0 -c wireless.conf
它会杀死所有以前启动的 wpa_supplicants,然后启动一个新的。现在,问题是killall
呼叫导致ip route add
哭泣:
RTNETLINK 回答:网络不可达
无论 wpa_supplicant 之前是否实际启动过。
可以通过sleep 1
在 之后添加调用来“修复”它killall
,但我当然想避免这种情况。也可以通过删除killall
命令并在脚本之前手动调用它来修复它。
所以问题是 - 我该如何解决这种奇怪的行为killall
?也许有人知道为什么会发生这些奇怪的事情。
编辑:如果没有在它之前调用,则ip route add
不会给出该错误。killall