IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Applications et environnements graphiques Discussion :

Xterm se fermant après l'éxécution d'un programme ?


Sujet :

Applications et environnements graphiques

  1. #1
    Futur Membre du Club
    Inscrit en
    Octobre 2003
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Octobre 2003
    Messages : 10
    Points : 9
    Points
    9
    Par défaut Xterm se fermant après l'éxécution d'un programme ?
    Bonjour tout le monde,

    Voilà, j'ai besoin de faire un script shel prenant en paramètre un numéro de machine, et un nombre d'éxécutable à lancer.

    Donc je veux que chaque éxécutable s'éxécute, donc j'effectue un "xterm -e ./mon_prog&" par exemple.

    Or mon petit souci est que lorsque "mon_prog" a fini son éxécution, le terminal ouvert se ferme, et ce n'est pas très pratique pour observer des résultats par exemple, il faut que je les vois à l'écran, et non pas les sauvegarder dans un fichier. Donc mon souci est que le terminal reste ouvert meme après l'éxécution, mais je ne sais pas si y'a un moyen de le faire.

    Si vous savez m'aider, ca serait super sympa

    Ah oui, une autre petite chose, dans un script bash, pour une boucle for, il faut obligatoirement qu'elle passe par une liste de valeur ? On peut pas faire comme dans tout autre langage de prog genre C++ fair eun for classique ?


    Merci beaucoup si vous pouveez m'aider

  2. #2
    Membre chevronné

    Profil pro
    Inscrit en
    Mars 2004
    Messages
    1 296
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 296
    Points : 1 803
    Points
    1 803
    Par défaut
    Pourquoi donc une xterm ??

    pour le for oui il ne prend qu'une liste de "valeur" par contre le while fonctionne comme en C ou autre langage

  3. #3
    Futur Membre du Club
    Inscrit en
    Octobre 2003
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Octobre 2003
    Messages : 10
    Points : 9
    Points
    9
    Par défaut
    Pour le xterm, j'ai besoin de lancer plusieurs processus dans 1 terminal à chaque fois pour de la lisibilité, et lorsque j'ai 20 ou 30 processus à lancer, je voudrai le faire de façon automatisée, càd sans me tapper 30 ouvertures à la main d'un terminal puis de lancer mon éxécutable, tu vois ce que je veux dire ?


    Et merci pour les infos sur le while, donc j'ai le droit de faire un truc du style while (i<nb_occ) do ....


    Voilou, et si pour mon xterm, ou konsole, tu sais, je suis preneur

  4. #4
    Membre chevronné

    Profil pro
    Inscrit en
    Mars 2004
    Messages
    1 296
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 296
    Points : 1 803
    Points
    1 803
    Par défaut
    pour le xhile attention !!!!!
    le shell ne gere pas les entier tout a fait naturellement .....
    donc
    typeset -i nb_occ
    (( nb_occ=5 )) #par exemple
    while (( i < nb_occ ))
    do
    ..
    done

    attention le blanc apres (( et avant )) est obligatoire , le do sur la ligne d'apres aussiou alors
    while (( i < nb_occ )) ; do
    ..
    done
    avec le ;

    pour le xterm je ne comprend pas bien :
    plusieurs lancement ok mais pourquoi en xterm .... avec un fichier log pour chaque ou un fichier log en ajout tu as tout les resultats :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    > monfichier.log # pour creer le fichier log vide et >> plus loin pour ecrire a la fin
    while (( i < nb_occ ))
    do
    echo "debut de ma_commande_shell para1 para2" >> monfichier.log 
    ma_commande_shell para1 para2 >> monfichier.log 2>>monfichier.log
    done

  5. #5
    Futur Membre du Club
    Inscrit en
    Octobre 2003
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Octobre 2003
    Messages : 10
    Points : 9
    Points
    9
    Par défaut
    Merci pour ta réponse, vraiment sympa

    Concernant le xterm, ben, je dois faire une démonstration d'un projet, et on doit pouvoir voir ce qui se passe "en direct", et pas après dans une "trace" tel qu'un fichier de log comme tu me le proposes Sinon, ca aurait été vite réglé à mon avis.

    Donc, meme sans passer par un script shell, le fait de faire : "xterm -e ./mon_prog&" me lance bien un nouveau terminal (c'est pareil avec konsole par exemple), éxécute mon programme, mais, ferme de suite après le terminal dès la fin de l'éxécution de "./mon_prog".

    J'ai mis un petit "while(true) {}" dans mon programme pour voir si c'était pas lui qui me plantait, ben absolument pas. Avec ce while true, le prog reste bloqué indéfiniement jusqu'à mon CTRL+C.

    Bref, je m'évade là, mais le truc, c'est que j'aimerai bien lancer un nouveau terminal (xterm, konsole, etc... à la limite, peu importe tant que ca marche :p) en lançant l'éxécution de "./mon_prog" par exemple sans qu'il se ferme à la fin de l'éxécution de "./mon_prog".

    Voilà, j'espère que je me suis exprimé clairement.

    Merci d'avance

  6. #6
    Membre chevronné

    Profil pro
    Inscrit en
    Mars 2004
    Messages
    1 296
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 296
    Points : 1 803
    Points
    1 803
    Par défaut
    un petit :
    read
    a la fin de ton script ....
    le read provequera l'attente d'une touche pour continuer et donc fermer la fenetre xterm

  7. #7
    Futur Membre du Club
    Inscrit en
    Octobre 2003
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Octobre 2003
    Messages : 10
    Points : 9
    Points
    9
    Par défaut
    Ouais, ca peut etre une solution effectivement, un peu détournée, mais ca marche :p

    J'ai mis dans ma source C++ un petit "cin", sachant que le cin est bloquant, ca va attendre lorsque ma fonction aura finie son éxécution. Je l'ai mis dans mon main(), en dernière instruction.
    Enfin, je pense qu'il doit y'avoir un moyen de le lui dire à xterm ou konsole.

    Par contre, il manquait l'incrémentation de "i" dans le while d'avant => i=$[i+1];


    J'ai testé un peu tout ca, j'ai essayé de lancer 50 processus, un petit 10 minutes pour récupérer ma machine :p
    Donc, je crois que va y'avoir du ssh dans l'air.


    Si quelqu'un sait à tout hasard pour l'xterm, je suis preneur, bien que j'ai une soluce qui marche

    Merci MarcG de ton aide

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 27/10/2011, 20h41
  2. Userform se fermant automatiquement après X secondes
    Par hbc87 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 30/06/2010, 17h40
  3. action APRES chargement complet ...
    Par PinGuy dans le forum Delphi
    Réponses: 7
    Dernier message: 06/07/2006, 18h16
  4. Réponses: 2
    Dernier message: 05/10/2004, 23h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo