Завершить сценарий из фонового процесса?

Убедитесь, что вы можете выйти в Интернет

ping google.com

Предполагая, что вы получили отзыв, например

64 bytes from lhr35s04-blah-blah.net (213.58.203.68) icmp_seq....

Тогда полученный вами отзыв верен — больше нечего обновлять. Если вы не можете выйти в интернет, то он делает это!

0
23.11.2017, 23:17
2 ответа

Вы можете передать 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) &
1
28.01.2020, 02:33

Верно, 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 немного длиннее, я сократил ее, чтобы привлечь внимание к важным частям.

1
28.01.2020, 02:33

Теги

Похожие вопросы