Bash: czekaj z limitem czasu

W skrypcie Bash chciałbym zrobić coś takiego:

<code>app1 &
pidApp1=$!
app2 &
pidApp2=$1

timeout 60 wait $pidApp1 $pidApp2
kill -9 $pidApp1 $pidApp2
</code>

To znaczy, uruchom dwie aplikacje w tle i daj im 60 sekund na ukończenie pracy. Następnie, jeśli nie dokończą w tym okresie, zabij ich.

Niestety powyższe nie działa, ponieważtimeout jest plikiem wykonywalnymwait jest poleceniem powłoki. Próbowałem zmienić to na:

<code>timeout 60 bash -c wait $pidApp1 $pidApp2
</code>

Ale to nadal nie działa, ponieważwait można wywołać tylko na PID uruchomionym w tej samej powłoce.

Jakieś pomysły?

questionAnswers(5)

yourAnswerToTheQuestion