Application en shell

Bonjour,

Je réalise une application en shell dans laquelle 2 programmes se lancent à un moment donné, s'arrêtent à un moment donné, et enfin une autre s'execute (une fois les 2 précédentes terminées).

Pour ça, j'utilise le logiciel Job Scheduler, et ait utilisé "job chains" pour faire mon application. Le problème, c'est que une fois que j'ai configuré mes jobs, sur l'interface web je vois marqué "job chain/state is missing" pour chacun de mes jobs.

Quelqu'un peut-il m'aider ? merci d'avance

6 réponses

  1. J'en avais déjà fait une en bash.
    Mais là en fait je suis en stage, et on m'a demandé d'utiliser job scheduler, et de faire un job chain pour créer mon application...
    1. Contributeur
      OK, c'est juste que ton problème n'est pas très compliqué et aurait été facilement réalisé en BASH.
      Je ne connais pas ton logiciel. Essai de faire un tuto ou un exemple, peut être comprendras tu ce qui ne va pas.
      1. Contributeur
        je pense. Avec la tâche de fond, l'horloge etc. Il faudrait que tu en dises plus.
        1. Contributeur
          hello
          en shell, prog3 démarre quand prog1 et prog2 sont terminés, ils démarrent à hh:mm
          echo 'prog1 & prog2 & wait ; prog3' | at hhmm
          si il faut arrêter prog1 et prog2 manuellement, par ex. 30 minutes plus tard, on peut faire
          echo 'prog1 & prog2' | at hhmm 
          echo 'pkill "prog1|prog2" ; prog3 | at hhmm + 30 minutes 
          1. Contributeur
            Je me doutait que ça ne devait pas être bien dure.
            pourrait tu expliqué un peu ce que tu fais ? je ne comprends pas l'intérêt d'echo.
          2. Contributeur
            c'est pour envoyer à at la liste des commandes à exécuter sur une seule ligne, c'est comme taper
            at hhmm << XX
            prog1 &
            prog2 &
            wait
            prog3
            XX
          3. Merci de ta réponse Dubcek,
            j'ai essayé ton code mais rien ne se lance...
          4. Contributeur
            vérifier que la commande at fonctionne
            echo "touch /tmp/qqqqqq"| at now
            sleep 10
            ls -l /tmp/qqqqqq
          5. Ou plutôt le 2eme programme ne se termine pas, et donc je dois moi même le fermer pour lancer le 3eme... Je te montre ce que je vois (ne fais pas attention aux programmes, ce sont juste pour des essais ;) )

            [administrateur@chm ~]$ echo /usr/bin/gedit & /usr/bin/gnome-dictionary & wait ; /usr/bin/xclock | at 10h14
            [1] 4704
            [2] 4705
            /usr/bin/gedit
            [1]- Done echo /usr/bin/gedit

            À ce moment là, je n'ai pas vu mon 1er programme mais je tombe directement sur le 2eme qui ne se terminera pas... Après l'avoir fermé moi même, voilà ce que je vois :

            [administrateur@chm ~]$ echo /usr/bin/gedit & /usr/bin/gnome-dictionary & wait ; /usr/bin/xclock | at 10h14
            [1] 4704
            [2] 4705
            /usr/bin/gedit
            [1]- Done echo /usr/bin/gedit
            [2]+ Done /usr/bin/gnome-dictionary

            Maintenant mon 3eme programme s'est lancé, il faudra aussi que je le ferme moi même pour voir afficher ça :

            [administrateur@chm ~]$ echo /usr/bin/gedit & /usr/bin/gnome-dictionary & wait ; /usr/bin/xclock | at 10h14
            [1] 4704
            [2] 4705
            /usr/bin/gedit
            [1]- Done echo /usr/bin/gedit
            [2]+ Done /usr/bin/gnome-dictionary
            job 8 at 2010-06-18 10:14