Application en shell

airmike -  
 airmike -
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

dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
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
Char Snipeur Messages postés 9813 Date d'inscription   Statut Contributeur Dernière intervention   1 299
 
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.
0
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
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
0
airmike
 
Merci de ta réponse Dubcek,
j'ai essayé ton code mais rien ne se lance...
0
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
vérifier que la commande at fonctionne
echo "touch /tmp/qqqqqq"| at now
sleep 10
ls -l /tmp/qqqqqq
0
airmike
 
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
0
Char Snipeur Messages postés 9813 Date d'inscription   Statut Contributeur Dernière intervention   1 299
 
Salut.
Pourquoi ne pas faire ça en bash ?
0
airmike
 
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...
0
Char Snipeur Messages postés 9813 Date d'inscription   Statut Contributeur Dernière intervention   1 299
 
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.
0

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

Posez votre question
airmike
 
Et en bash tu saurais comment faire ?
0
Char Snipeur Messages postés 9813 Date d'inscription   Statut Contributeur Dernière intervention   1 299
 
je pense. Avec la tâche de fond, l'horloge etc. Il faudrait que tu en dises plus.
0