我有一个正在构建的 Uni 作业,我需要使用多个不同的参数多次运行以检查运行时间。目前我有一个简单的 bash 脚本,它看起来有点像下面的 - 它记录了它在做什么以及time每个测试的结果,所有正常输出都被丢弃(我正在其他地方检查正确性,别担心)。
问题是有时(而且相当罕见)master进程会卡住并且永远不会终止,这显然会妨碍完成测试运行。我正在努力解决这个问题,显然,但算法很好,所以我仍然想继续测试,因为有一个交接日期。
所以,我想要某种方式来指定进程的最大运行时间,如果它们超过了,我希望它们自动终止(最好通过SIGINT,或其他一些识别信号),然后脚本继续下一个条目。或具有相同结果的任何合适的替代方案。
建议?
我目前拥有的片段:
#!/bin/bash
echo "starting tests: clearing output file" > log
echo "running single tests" >> log
echo " starting 16" >> log
time (./single 16) 1> /dev/null 2>> log
time (./single 16) 1> /dev/null 2>> log
time (./single 16) 1> /dev/null 2>> log
#etc
echo "running multi tests" >> log
echo " starting 16 1 1 1" >> log
time (./master 16 4 7 100) 1> /dev/null 2>> log
time (./master 16 4 7 100) 1> /dev/null 2>> log
time (./master 16 4 7 100) 1> /dev/null 2>> log
#etc
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
334 次 |
| 最近记录: |