Question

Est-ce que cette commande existent pour Linux?

runonce --dampen 300 echo "hello"

La commande prendrait une commande pour exécuter et critères facultatifs pour limiter de fréquence il est exécuté.

L'option Humidifiez dit attendre 300 millisecondes, puis exécutez la commande. Toutes les autres exécutions de cette commande se fusionnés en un seul passage. Cela vous permet d'effondrer les événements de façon générique et de combiner leur exécution.

si vous exécutiez

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

De trois sous-coquilles à peu près le même temps, le premier vivrait pour 300 millisecondes et imprimer bonjour. Les deux autres reviendraient immédiatement et ne rien faire.

Si cela existe, quel est le nom de l'outil ou un lien vers sa page de projet?

Était-ce utile?

La solution

Une solution possible, en quelque sorte tiré de la page man flock, serait:

#!/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"

Exemple d'utilisation:

runonce 10 echo "hello"

où 10 est un nombre de secondes (non millisecondes).

EDIT : introduit hachant sur les paramètres commad +

Autres conseils

Je pense que vous pouvez regarder Cron, pour voir si cela répond à vos besoins

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top