我有两个二进制文件,我想一个接一个地执行,事情是我想要执行两分钟。我有以下bash代码:
./file_1
./file_2
但我不知道如何只运行一分钟。
答案 0 :(得分:3)
这是一个可移植的解决方案 - 在后台运行二进制文件,并在一分钟后终止它们:
for file in "file_1" "file_2"; do
"./$file" &
file_pid=$!
sleep 60
kill "$file_pid"
done
&
运算符启动后台作业,特殊变量$!
包含上一个作业的PID。循环是可选的。我们可以用它来减少重复的代码。
答案 1 :(得分:0)
这是使用timeout命令
的单线程$ timeout 60 binary-1; timeout 60 binary-2
在这种情况下,格式为:
timeout duration command
持续时间默认为秒,或者也可以使用1米(1分钟),来自男人:
duration is a floating point number followed by an optional unit:
‘s’ for seconds (the default)
‘m’ for minutes
‘h’ for hours
‘d’ for days