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. 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
  2. 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.