ltp-ddt realtime_cpu_load timeout
阅读原文时间:2023年07月10日阅读:1

# @name Worstcase Latency with cpu load by using cyclictest
# @desc Measure latency under cpu load by spawning n procs spinning on sqrt()
# @requires armv*
# @setup_requires

REALTIME_S_PERF_1C_CPU_LOAD
source 'functions.sh'; source 'board_requirements.sh';
latency=`get_acceptable_latency cpu`; multi_run_processes.sh -s "timeout
-t 120 -s 9 sh -c 'while true; do stress --cpu 4; done'  || true" -l
"-n 1" -s "run_cyclictest $latency -S -p98 -m -n -q -D 2m" -l "-n 1"

timeout -t 120 -s 9 sh -c 'while true; do stress --cpu 4; done'

查了一下timeout的用法,并没有-t

timeout [选项] 数字[后缀] 命令 [参数]...

后缀”s”代表秒(默认值),”m”代表分,”h”代表小时,”d”代表天。

长选项必须使用的参数对于短选项时也是必需使用的。  

-s, --signal=信号
        指定在超时时发送的信号。信号可以是类似"HUP"的信号名或是信号数。        

         查看"kill -l"以获得信号列表      

         --help        显示此帮助信息并退出
          --version        显示版本信息并退出
如果程序超时则退出状态数为124,否则返回程序退出状态。 如果没有指定信号则默认为TERM 信号。TERM 信号在进程没有捕获此信号时杀死进程。 对于另一些进程可能需要使用KILL (9)信号,当然此信号不能被捕获。

timeout -s 9 10 top

解释:如过command命令在10秒内结束,则平安结束,运行超过10秒,将被强行kill掉。

所以目测timeout -t 120 -s 9 sh -c 'while true; do stress --cpu 4; done'应该改为:

timeout -s 9 120 sh -c 'while true; do stress --cpu 4; done'