Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#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 neutral. 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 smile


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

verbose a écrit :

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 wink)

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 smile

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

verbose a écrit :

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 ? roll

#! /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)


Skrooge, a personal finances manager powered by KDE
Donate

Hors ligne

#14 Le 04/10/2007, à 14:04

verbose

Re : [Résolu] Lancer un script à la fermeture d'un programme

miraks a écrit :

Pourquoi ne pas faire ? roll

#! /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 lol

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 big_smile

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/


miraks a écrit :

Pourquoi ne pas faire ? roll

#! /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 wink. 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 big_smile


soupaloignon a écrit :
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 wink

Hors ligne