コマンドの実行を制限するために、rononceコマンドが存在しますか
-
25-09-2019 - |
質問
このコマンドはLinuxに存在しますか?
runonce --dampen 300 echo "hello"
コマンドは、実行するコマンドを取得し、オプションの基準は頻繁に実行されます。
オプションは、300ミリ秒待ってからコマンドを実行していると言っています。このコマンドのその他の実行は、1回の実行に合体します。これにより、イベントを一般的な方法で崩壊させ、その実行を組み合わせることができます。
走った場合
runonce --dampen 300 echo "hello"
runonce --dampen 300 echo "hello"
runonce --dampen 300 echo "hello"
ほぼ同時に3つの異なるサブシェルから、最初のサブシェルは300ミリ秒間生き、こんにちは。他の2人はすぐに戻り、何もしません。
これが存在する場合、ツールの名前またはそのプロジェクトページへのリンクは何ですか?
解決
どういうわけか採取された可能な解決策 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+パラメーターにハッシュすることを導入しました
他のヒント
見たいと思う クロン, 、これがあなたの要件を満たしているかどうかを確認します
所属していません StackOverflow