Bash скрипт поймал сигнал, но потом ждал завершения процессов - PullRequest
1 голос
/ 30 апреля 2020

в настоящее время я пишу bash скрипт, подобный этому:

foo(){
  while true
  do
    sleep 10
  done
}

bar(){
  while true
  do
    sleep 20
  done
}

foo &
bar &

wait

(я знаю, что нет смысла в таком скрипте, это просто структура)

Теперь Я хочу добавить обработку сигналов с trap -- <doSomething> RTMIN+1. Это работает сначала. Когда скрипт получает сигнал rtmin + 1, он делает doSomething, но после этого он существует (с кодом выхода 163, который является номером отправляемого сигнала).

Это не то поведение, которое я хочу, я хочу что сценарий после получения сигнала продолжает ждать завершения процессов (в данном случае двух функций) (что, конечно, не произойдет в этом случае, но сценарий должен ждать).

Я пытался это с добавлением ; wait к тому, что должно быть сделано при получении сигнала, но это не помогает (или я делаю что-то не так).

Кто-нибудь знает, как добиться желаемого поведения?

Спасибо заранее и с наилучшими пожеланиями.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...