Я хочу создать Bash script для запуска параллельных дочерних процессов. Есть ли способ сделать это, чтобы дочерние скрипты по-прежнему получали сигналы, отправленные в родительский процесс?
Здесь примерно так, как я хочу запускать дочерние процессы, но это не соответствует моим критериям сигнализации.
for (( i=0; i<9; i++ ))
   {
   { echo $i start ; sleep 5s ; echo $i complete ; } &
   }
wait
Поскольку это работает автоматически в C-программе (которая использует fork/exec), я считаю, что это должно быть возможно без использования trap -фазовой пересылки сигналов, которая сама может быть прервана до того, как сигналы будут перенаправлены.
Обходным путем для этого является использование GNU-parallel. Я не знаю, что это за механизм, но он решает эту проблему - до тех пор, пока вы готовы перестроить свои циклы в синтаксис стиля xargs. GNU-parallel не решает проблему, если используется опция --semaphore.
Я думаю, что ответ здесь, но я не знаю, как его перевести на Bash: Сигнал, отправленный как дочернему, так и родительскому процессу.
