Ветвление два процесса и уничтожают второе, когда первое сделано

Я хочу создать сценарий удара, который запустит два процесса и уничтожит второй процесс, когда первое будет сделано. Вот пример:

#fork first process
producer&

#fork second process
consumer&

#wait for producer to finish
...

#kill the consumer
...

У меня есть чувство, что это может стать ужасным, но имеет очень простое решение. Помогите мне восполнить пробелы.

5
задан ThinkingStiff 30 June 2012 в 04:23
поделиться

2 ответа

foo & pid_foo=$!
bar & pid_bar=$!

wait $pid_foo
kill $pid_bar

Но, возможно, вы могли бы просто запустить foo | bar (если это произойдет с обработкой stdin / stdout).

12
ответ дан 18 December 2019 в 11:54
поделиться
#!/bin/bash 

#enable job control in script
set -m

producer &

consumer &

fg %1

kill %2
3
ответ дан 18 December 2019 в 11:54
поделиться
Другие вопросы по тегам:

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