Lancer un programme toutes les 10 secondes

Spizer -  
 wood -
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.
A voir également:

8 réponses

sebsauvage Messages postés 32893 Date d'inscription   Statut Modérateur Dernière intervention   15 662
 
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
wood
 
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   Statut Modérateur Dernière intervention   15 662
 
Non.
Quand le sleep dort, ça ne consomme rien.
1
Spizer
 
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   Statut Modérateur Dernière intervention   15 662
 
kill :-)
0
sebsauvage Messages postés 32893 Date d'inscription   Statut Modérateur Dernière intervention   15 662
 
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 27121 Date d'inscription   Statut Modérateur Dernière intervention   3 359
 
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
Spizer
 
J'ai vu effectivement cette facon de faire, mais est ce que ça n'utilise pas trop de cpu justement ?
0
dmganges
 
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
tickleman
 
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