Lancer un programme toutes les 10 secondes

Fermé
Spizer - 14 janv. 2008 à 14:00
 wood - 23 mai 2012 à 09:49
Bonjour,

J'aimerais lancer un script toutes les 10 secondes, j'ai déjà essayé crontab mais celui-ci se limite à la minute.
Comment puis je faire merci d'avance.

8 réponses

sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 15 659
14 janv. 2008 à 14:03
Avec un script shell ?

Tu fais une boucle en shell dans un script, avec une commande sleep 10, et tu lance ton script en tâche de fond (monscript &), quitte à le lancer au démarrage de la machine (/etc/rc.local)
4
il y a une commande pour ça: watch

man watch

exemple:
watch -n 10 date


pour lancement 'en aveugle':
 watch -n 10 date > /dev/null
2
sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 15 659
14 janv. 2008 à 14:32
Non.
Quand le sleep dort, ça ne consomme rien.
1
dmganges, le crontab ne prend pas en compte les secondes !
Et si je fais un i=0 while(i>0){ mon code; sleep 10;}, je fais comment pour stopper le programme apres ?
1
sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 15 659
14 janv. 2008 à 14:50
kill :-)
0
sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 15 659
14 janv. 2008 à 14:51
Bon en fait il y a un autre moyen, comme par exemple: examiner la présence d'un fichier.
Si le fichier existe, quitter et effacer le fichier. (Tu intègre ça dans ta boucle.)

Comme ça tu peux arrêter ton programme en faisant un touch arrete_toi
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
blux Messages postés 26521 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 10 décembre 2024 3 317
14 janv. 2008 à 14:04
Salut,

tu lances un script qui reste en permanence en machine et tu mets des sleep 10 avec une boucle pour lancer ton programme.

genre :

while true
programme.sh
sleep 10
end while
0
J'ai vu effectivement cette facon de faire, mais est ce que ça n'utilise pas trop de cpu justement ?
0
Ha ! non il te faut passer par cron

Là je n'ai pas beaucoup de temps,
il te faut ajouter une ligne dans le fichier /etc/crontab.
Tiens pour les param :

http://jp.barralis.com/linux-man/man5/crontab.5.php

@+
0
si je puis me permettre : tout simplement :
(à traduire dans le language de ton choix)

while (file_exists(/tmp/fichier_flag_securite)) {
sleep 1;
}
touch /tmp/fichier_flag_securite
i = 6;
while (i-- > 0) {
mon code;
sleep 10;
}
delete /tmp/fichier/flag/securite
0