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?