每隔x个时间间隔重复未终止的命令

时间:2017-05-11 20:22:09

标签: bash

我正试图在一段时间后运行一个命令。我找到了这些解决方案:

watch -n60 command

while true; do command; sleep 60; done

如果命令终止(例如:echo "message"

,它们正常工作

我正在运行的代码没有终止。这就是为什么这些解决方案不适合我。但是我想运行它,在60秒后终止并再次运行它。我怎么能这样做?

2 个答案:

答案 0 :(得分:2)

使用timeout command

while true; do timeout 60 command; done

请注意,如果命令在60秒之前退出,它将立即重新执行,而不是等待分钟上升。

答案 1 :(得分:0)

这会每60秒启动一次command,如果未终止,则会终止该进程:

while true; do command &; LAST_PID=$!; sleep 60; kill -9 $LAST_PID; done