#1 Le 03/10/2007, à 16:18
- soupaloignon
[Résolu] Lancer un script à la fermeture d'un programme
Bonjour,
Tout est dans le titre. Je cherche à pouvoir lancer un script lorsque je ferme un programme (script qui enverra automatiquement le fichier modifié (qui est toujours le même) sur un ftp)
Merci d'avance pour vos réponses
Dernière modification par soupaloignon (Le 04/10/2007, à 15:02)
==> Libérez les huitres du bassin d'Arcachon <==
Hors ligne
#2 Le 03/10/2007, à 16:33
- verbose
Re : [Résolu] Lancer un script à la fermeture d'un programme
Tu peux essayer en utilisant un bootstrap écrit en bash et récuper avec trap le signal TERM.
#! /bin/bash
trap "script" TERM INT
/le/programme
où script est le nom du script que tu veux exécuter quand le programme se termine.
Hors ligne
#3 Le 03/10/2007, à 17:03
- soupaloignon
Re : [Résolu] Lancer un script à la fermeture d'un programme
Bonjour, merci pour ta réponse.
Par contre je ne comprend pas comment un script peut se lancer automatiquement . En tout cas il ne se lance pas lorsque je ferme le programme.
Et lorsque je le lance par un double clic, cela me lance le programme indiqué dans le scrip (et non le script)
#! /bin/bash
trap /home/soupaloignon/03\ outils/00scripts/mon-script.sh TERM INT
tellico
==> Libérez les huitres du bassin d'Arcachon <==
Hors ligne
#4 Le 04/10/2007, à 06:16
- soupaloignon
Re : [Résolu] Lancer un script à la fermeture d'un programme
Un petit up
==> Libérez les huitres du bassin d'Arcachon <==
Hors ligne
#5 Le 04/10/2007, à 08:40
- verbose
Re : [Résolu] Lancer un script à la fermeture d'un programme
Excuses-moi, ce n'est pas le signal TERM mais le signal QUIT qu'il faut récupérer :
#! /bin/bash
trap "script" QUIT
/le/programme
Bien sûr, il faut maintenant lancer ton programme avec le bootstrap.
Hors ligne
#6 Le 04/10/2007, à 09:27
- soupaloignon
Re : [Résolu] Lancer un script à la fermeture d'un programme
Excuses-moi, ce n'est pas le signal TERM mais le signal QUIT qu'il faut récupérer :
#! /bin/bash trap "script" QUIT /le/programme
Bien sûr, il faut maintenant lancer ton programme avec le bootstrap.
Merci de ta reponse, mais c'ets quoi le bootstrap ? Parce que j'ai fait quelques recherches sur ce mot (google, le forum, la doc) et franchement il n'y a pas de réponses vraiment compréhensible (pour moi en tout cas )
Dernière modification par soupaloignon (Le 04/10/2007, à 09:43)
==> Libérez les huitres du bassin d'Arcachon <==
Hors ligne
#7 Le 04/10/2007, à 09:46
- verbose
Re : [Résolu] Lancer un script à la fermeture d'un programme
Un boostrap est un programme qui lance un autre programme.
Toi, tu te retrouve avec trois programmes/script. Appelons A le programme que tu veux exécuter, B le script que tu veux exécuter quand A se termine, et C le script que je t'ai fait écrire. C est le boostrap de A. Pour que B s'exécute quand A se termine, tu ne dois plus exécuter A directement mais par l'intermédiaire de C.
Hors ligne
#8 Le 04/10/2007, à 12:37
- soupaloignon
Re : [Résolu] Lancer un script à la fermeture d'un programme
Ok, je comprend mieux maintenant
J'ai donc créé ce script
#! /bin/bash
trap /home/soupaloignon/03\ outils/00scripts/lancer-nautilus-pour-test-scrap.sh QUIT
tellico
"lancer-nautilus-pour-test-scrap.sh" est juste un script qui lance nautilus, cela ne sera pas le script final.
Je double clique donc sur le boostrap, qui melance effectivement Tellico. Par contre à la fermeture de Tellico "lancer-nautilus-pour-test-scrap.sh" ne se lance pas.
Une idée ?
==> Libérez les huitres du bassin d'Arcachon <==
Hors ligne
#9 Le 04/10/2007, à 13:17
- verbose
Re : [Résolu] Lancer un script à la fermeture d'un programme
Essayes avec EXIT à la place de QUIT.
Hors ligne
#10 Le 04/10/2007, à 13:54
- soupaloignon
Re : [Résolu] Lancer un script à la fermeture d'un programme
Essayes avec EXIT à la place de QUIT.
Non, cela ne marche pas non plus
==> Libérez les huitres du bassin d'Arcachon <==
Hors ligne
#11 Le 04/10/2007, à 13:57
- verbose
Re : [Résolu] Lancer un script à la fermeture d'un programme
C'est quoi tellico ?
Hors ligne
#12 Le 04/10/2007, à 13:58
- verbose
Re : [Résolu] Lancer un script à la fermeture d'un programme
Essayes de débugger en lancant le boostrap en ligne de commande et en imprimant un message à la console pour essayer de voir ce qui se passe.
#! /bin/bash
trap "echo ça marche" EXIT
tellico
Dernière modification par verbose (Le 04/10/2007, à 13:59)
Hors ligne
#13 Le 04/10/2007, à 14:00
- miraks
Re : [Résolu] Lancer un script à la fermeture d'un programme
Pourquoi ne pas faire ?
#! /bin/bash
tellico
/home/soupaloignon/03\ outils/00scripts/lancer-nautilus-pour-test-scrap.sh
tellico se lancera et lorsqu'il se terminerra, lancer-nautilus-pour-test-scrap.sh se lancera à son tour.
Dernière modification par miraks (Le 04/10/2007, à 14:01)
Hors ligne
#14 Le 04/10/2007, à 14:04
- verbose
Re : [Résolu] Lancer un script à la fermeture d'un programme
Pourquoi ne pas faire ?
#! /bin/bash tellico /home/soupaloignon/03\ outils/00scripts/lancer-nautilus-pour-test-scrap.sh
tellico se lancera et lorsqu'il se terminerra, lancer-nautilus-pour-test-scrap.sh se lancera à son tour.
Wé, je me complique la vie
Hors ligne
#15 Le 04/10/2007, à 14:56
- soupaloignon
Re : [Résolu] Lancer un script à la fermeture d'un programme
Bon quelques nouvelles du front
Tellico est un gestionnaire d'informations, une base de données en fait. Tres pratique. Je l'utilise pour gérer mon carnet d'adresses, mes collections de films et musique, et 2 ou 3 autres trucs.
J'ai installé Ubuntu sur le portable d'une amie qui gère une association. Les gestion des membres et des activités se fait avec Tellico. Comme j'ai besoin d'avoir aussi accès à ces informations j'ai pensé à cette solution.
A chaque fermeture de Tellico (donc après une mise à jour de la base de données) le script qu'il y a derrière se chargera de récupérer le fichier de données (qui porte toujours le même nom) et de me l'envoyer. Soit sur un ftp, ou bien directement par mail. De cette manière j'ai toujours accès à un fichier à jour.
Il ne me reste plus qu'à creuser cette partie:D
Plus d'info sur Tellico : http://periapsis.org/tellico/
Pourquoi ne pas faire ?
#! /bin/bash tellico /home/soupaloignon/03\ outils/00scripts/lancer-nautilus-pour-test-scrap.sh
tellico se lancera et lorsqu'il se terminerra, lancer-nautilus-pour-test-scrap.sh se lancera à son tour.
Effectivement cela marche très bien . En fait je n'avais pas pensé à ça car je croyais que cela ouvrirait Tellico et de suite lancerait le script, sans attendre la fermeture de Tellico. Donc cela n'avait aucun intérêt.
Merci pour cette info
verbose a écrit :Essayes avec EXIT à la place de QUIT.
Non, cela ne marche pas non plus
Là c'ets moi qui ai fait une erreur, cela fonctionne parfaitement avec "EXIT", mais dans l'intervalle j'ai renommé le fichier du script et me suis planté.
Le script appelait un fichier : lancer-nautilus-pour-test-scrap.sh
Alors que suite au renommage le fichier était devenu : lancer-nautilus-pour-test-scrap.s
Il ne trouvait donc pas le fichier;) (je meaculpe à fond pour cette grossière erreur)
Les 2 formules fonctionnent, est ce qu'il y en a une qui est mieux ?
En tout cas merci à vous 2 pour vos conseils éclairés, je passe le post en résolu
Dernière modification par soupaloignon (Le 04/10/2007, à 15:04)
==> Libérez les huitres du bassin d'Arcachon <==
Hors ligne
#16 Le 04/10/2007, à 15:24
- verbose
Re : [Résolu] Lancer un script à la fermeture d'un programme
La proposition de miraks est plus simple
Hors ligne