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