web-dev-qa-db-fra.com

Comment exécuter périodiquement une commande avec un intervalle très court et obtenir le retour?

Je dois appeler une commande spécifique dans un intervalle d'environ 5 secondes. Comment puis-je configurer un démon/processus en cours d'exécution dans l'arrière-plan ou quelque chose de similaire à cela? J'ai regardé des cronjobs, mais l'intervalle minimum semble être 1 minute. Tout conseil est apprécié;)

Fedora est le système.

Modifier la commande serait un bashscript, alors "regarder" ne le ferais pas, je pense.

12
Hans

Pourquoi pensez-vous que "regarder" ne fonctionnera pas?

$ cat periodic.sh
#!/bin/bash
echo $(date)
$ chmod +x periodic.sh

$ watch -n 5 ./periodic.sh
14
naufraghi

La commande watch est appropriée dans votre cas, j'utiliserais un multiplexeur de terminal (par exemple TMUX, écran, etc.), puis exécutez la commande en utilisant

watch -n 5 ./script.sh

Dans ce cas, même si vous fermez la connexion terminale ou SSH à la machine, le script serait toujours en marche.

La seule limitation de cette approche est que le script fonctionnera toutes les 5 secondes que si elle a terminé son exécution dans cette intervalle de temps.

1
JimS