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