Убедитесь, что вы можете выйти в Интернет
ping google.com
Предполагая, что вы получили отзыв, например
64 bytes from lhr35s04-blah-blah.net (213.58.203.68) icmp_seq....
Тогда полученный вами отзыв верен — больше нечего обновлять. Если вы не можете выйти в интернет, то он делает это!
Вы можете передать pid
вашего основного скрипта подоболочке, а затем kill
его, когда захотите:
export mypid=$$
(sudo stdbuf -o0 wpa_supplicant -Dwext -i$wifi -cwifi.conf 2>&1 \
| grep -m 1 "pre-shared key may be incorrect" \
&& echo I see this \
&& kill $mypid) &
Верно, exit
влияет на фоновый процесс, обеспечивая нулевой статус выхода. Я бы не стал называть это "убийством", так как процесс и так был на грани остановки.
Запустите команду wpa в фоновом режиме и отслеживайте ее PID, чтобы вам не приходилось использоватьkillall
:
bash -c 'echo $$ > /tmp/pid; exec wpa_supplicant 2>&1 > /tmp/out' &
sleep 1
egrep 'pre-shared key may be incorrect' /tmp/out && kill `cat /tmp/pid`
Я знаю, что ваша команда wpa немного длиннее, я сократил ее, чтобы привлечь внимание к важным частям.