Lancer un programme toutes les 10 secondes

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

  1. Modérateur
    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)
    1. Modérateur
      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
      1. J'ai vu effectivement cette facon de faire, mais est ce que ça n'utilise pas trop de cpu justement ?
        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. Modérateur
            kill :-)
          2. Modérateur
            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
        2. 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
          1. 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