Баш: ждать с таймаутом
В скрипте Bash я хотел бы сделать что-то вроде:
<code>app1 & pidApp1=$! app2 & pidApp2=$1 timeout 60 wait $pidApp1 $pidApp2 kill -9 $pidApp1 $pidApp2 </code>
То есть, запустите два приложения в фоновом режиме и дайте им 60 секунд для завершения их работы. Затем, если они не закончат в течение этого интервала, убейте их.
К сожалению, вышесказанное не работает, так какtimeout
является исполняемым, аwait
это команда оболочки Я попытался изменить его на:
<code>timeout 60 bash -c wait $pidApp1 $pidApp2 </code>
Но это все еще не работает, так какwait
может быть вызван только для PID, запущенного в той же оболочке.
Есть идеи?