1
我有一个bash脚本在循环中执行程序,但我想为程序的每次执行设置最大时间限制,即我只是如果超过时间限制,想要取消当前的执行,但我不想打破整个循环。脚本在循环中执行程序并在超出时间限制时终止当前进程
谢谢!
我有一个bash脚本在循环中执行程序,但我想为程序的每次执行设置最大时间限制,即我只是如果超过时间限制,想要取消当前的执行,但我不想打破整个循环。脚本在循环中执行程序并在超出时间限制时终止当前进程
谢谢!
这应该在任何Posix的外壳,包括bash的工作...
#!/bin/sh
while :; do
echo starting command
while :; do
trap break SIGTERM
sleep 5; kill $$ # 5 second timeout
sleep 10 # replace this sleep with your real command
done
echo Command terminated, restarting...
done
有在我的Ubuntu名为timeout命令。你可以试试这个:
timeout 1s yes
这将使得过程是1秒后结束。
注意:使用此命令也可以指定信号作为参数。
您也可以验证时间constaint开始使用此命令的尊重:
time timeout 3s yes
是不是有一些'&'失踪并行执行,而不是一个接一个的命令? – 2011-04-23 21:08:21