0

Linux 是否存在此命令?

runonce --dampen 300 echo "hello"

该命令将采用命令运行和可选标准来限制它的执行频率。

选项阻尼表示等待 300 毫秒,然后运行命令。此命令的任何其他执行都会合并为一次运行。这允许您以通用方式折叠事件并组合它们的执行。

如果你跑了

runonce --dampen 300 echo "hello"
runonce --dampen 300 echo "hello"
runonce --dampen 300 echo "hello"

大致同时从三个不同的子 shell 中,第一个将存活 300 毫秒并打印 hello。另外两个会立即返回,什么也不做。

如果存在,该工具的名称或指向它的项目页面的链接是什么?

4

2 回答 2

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+parameters 上引入散列

于 2010-10-24T17:06:47.020 回答
0

我想你可能想看看cron,看看这是否符合你的要求

于 2010-10-24T16:22:20.870 回答