Linux命令执行速率限制

时间:2019-12-20 13:22:46

标签: linux bash command-line

我有一个Linux命令,该命令可以由另一个应用程序使用不同的参数多次(快速连续)调用。问题是,如果命令的执行顺序太快,执行的功能将无法正常工作。

我正在寻找一种简单的方法,以确保每次调用该命令都可以正确地彼此延迟/间隔(几毫秒)。

在这种情况下,执行顺序无关紧要,我无法控制应用程序如何进行调用。

编辑:被调用的命令用于在Raspberry Pi上传输RF信号。因此,命令执行必须是互斥的(无并发性),并且两次执行之间还要有额外的延迟,以防止接收器误读信号。

2 个答案:

答案 0 :(得分:1)

对于任何有相同问题的人,这对我有用:https://unix.stackexchange.com/questions/408934/how-to-serialize-command-execution-on-linux

task copyDownloadableDepsToLibs(type: Copy) {
    from configurations.compile
    into 'libs'
}

答案 1 :(得分:1)

对于将并发执行限制在实例中的简单并发控制,请考虑以下while循环(根据需要进行修改)。

请注意,该脚本必须作为/path/to/script.sh调用,以便找到其他实例。以'bash /path/to/script.sh'开头将需要更改!

#! /bin/bash

   # Process identifier.
echo "START $$"
ME=${0##*/}
   # Max number of instances
N=5
   # Sleep while there are more than N instances.
while [[ "$(pgrep -c -x $ME)" -gt "$N" ]] ; do echo Waiting ... ; sleep 1 ; done

   # Execute the job
sleep "$@"
echo "Done $$"