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