Как сделать скрипт для запуска приложений в течение 1 секунды?

У меня есть следующий сценарий bash для запуска некоторых приложений в папке в течение 1 секунды (для тестирования):

#!/bin/bash for app in ./*.app do myrunner $app & sleep 1 killall -9 myrunner done 

Но я думаю, что использование «killall -9» – не лучший способ сделать это, есть ли лучший?

Я думаю, вы хотите использовать timeout , например

 timeout 1s myrunner $app 

$! является pid последнего фонового процесса, поэтому:

 do myrunner $app & pid=$! sleep 1 kill -9 $pid done 

Вам не нужно назначать его промежуточной переменной, поскольку sleep не задан, т. Е. Вы можете просто использовать kill -9 $! ,

Полезная связанная переменная равна $? статус выхода последней команды, который вы можете получить WRT в фоновом режиме следующим образом:

 somecommand & wait $! status=$? 

Вы даете своим испытуемым 1- е время работы по разгону , а не время работы . Это может иметь значение.

Зачем запускать их только в течение фиксированного времени и не строить какие-либо критерии завершения? Таким образом, нет никакой реальной уверенности в том, что все, что должно было быть протестировано, действительно было сделано (особенно, если более длительные тесты теста присоединяются к набору позже).