Linux是否存在此命令?
runonce --dampen 300 echo "hello"
该命令将运行命令,并且可选标准以限制频繁执行。
选项dampen表示等待300毫秒,然后运行命令。此命令的任何其他执行都会合并到一次运行中。这允许您以通用方式折叠事件并组合它们的执行。
如果你跑了
runonce --dampen 300 echo "hello"
runonce --dampen 300 echo "hello"
runonce --dampen 300 echo "hello"
在大致相同的时间从三个不同的子壳,第一个子壳将存活300毫秒并打印你好。其他两个会立即返回,什么也不做。
如果存在,该工具的名称或项目页面的链接是什么?
答案 0 :(得分:1)
以某种方式从flock
手册页获取的可能解决方案是:
#!/bin/sh
# name me 'runonce'
timeout="$1"; shift
command="$1"; shift
hash=$(echo "$command" "$@" | md5sum)
(
flock -xw0 3 || exit
sleep "$timeout"
"$command" "$@"
) 3>"/tmp/$hash"
使用示例:
runonce 10 echo "hello"
其中10是秒数(不是毫秒)。
修改强>: 在commad +参数上引入哈希
答案 1 :(得分:0)
我认为您可能需要查看cron,看看这是否符合您的要求