#1 Le 24/11/2021, à 14:29
- Q7frkz
Script qui se lance mais qui ne s'éteint pas
Salut à vous,
cette question fait suite à celle-ci:
https://forum.ubuntu-fr.org/viewtopic.php?id=2068384
elle même faisant suite à celle-ci:
https://forum.ubuntu-fr.org/viewtopic.php?id=2067528
Une icone sur mon bureau lance mon script qui lance gnome-terminal dans lequel il lance un serveur, puis crée un nouvel onglet dans lequel il lance mon application python tel que:
ihm.Desktop
[Desktop Entry]
Type=Application
Name=IHM
GenericName=launchGui
Icon=.../.../.../icone_drone.png
Exec=.../.../.../launchGui.sh
Terminal=True
script
#!/bin/bash -ic
cd /home/.../Documents/Sources/LaunchGUI
source /home/.../.../setup.bash
gnome-terminal --tab -- bash -c "./LaunchGui & gnome-terminal --tab -- bash \"/opt/ros/melodic/bin/roscore; exec bash\" exec bash"
Dorénavaent ceci marche mais qu'une seule.
Quand je dois redémarrer mon application je fais ctrl-C dans les deux onglets je ferme la fenêtre et si je reclic sur ,on icone cela ne se relance pas.
De plus, si je vais dans htop, je vois ma commande qui tourne toujours, je ne peux pas la sigterm mais je peux la sigkill.
Et je ne peux, dans tous les cas, la relancer. Je peux par contre la relancer manuellement sans problème, j'ouvre un terminal, je lance le serveur, j'ouvre un autre terminal, je lance mon app et tout va bien...
Une idée ?
Merci beaucoup de me faire profiter de vos lumières
Hors ligne
#2 Le 24/11/2021, à 14:39
- Tawal
Re : Script qui se lance mais qui ne s'éteint pas
Hello,
C'est le script qui ouvre le terminal (et l'onglet supplémentaire), pas toi.
Donc tant que ces terminaux ne sont pas fermés, le script n'est pas terminé.
Le savoir n'a d’intérêt que si on le transmet.
Useless Use of Cat Award
Filenames and Pathnames in Shell: How to do it Correctly
À chaque problème sa solution, à chaque solution son moyen, si pas de moyen, toujours le problème !
Hors ligne
#3 Le 24/11/2021, à 14:40
- Q7frkz
Re : Script qui se lance mais qui ne s'éteint pas
Hello,
C'est le script qui ouvre le terminal (et l'onglet supplémentaire), pas toi.
Donc tant que ces terminaux ne sont pas fermés, le script n'est pas terminé.
Je ne peux pas les fermer tu dis ?
j'ai une fenêtre avec deux onglets, je fais ctrl-C dans chacun d'eux puis je ferme la fenêtre
ce n'est pas suffisant ?
et sinon, après l'avoir fermé (via htop), pourquoi je ne peux pas le relancer ?
Dernière modification par Q7frkz (Le 24/11/2021, à 14:41)
Hors ligne
#4 Le 24/11/2021, à 16:12
- kamaris
Re : Script qui se lance mais qui ne s'éteint pas
Pourquoi mettre
#!/bin/bash -ic
?
Ça lance un shell interactif, ce qui change beaucoup de choses et n'a pas beaucoup de sens.
Mets simplement
#!/bin/bash
, et tu peux aussi enlever les exec dans la ligne de commande gnome-terminal.
Hors ligne
#5 Le 25/11/2021, à 08:54
- Q7frkz
Re : Script qui se lance mais qui ne s'éteint pas
Pourquoi mettre
#!/bin/bash -ic
?
Ça lance un shell interactif, ce qui change beaucoup de choses et n'a pas beaucoup de sens.
Mets simplement#!/bin/bash
, et tu peux aussi enlever les exec dans la ligne de commande gnome-terminal.
c'est ce que j'ai découvert la dernière fois (https://forum.ubuntu-fr.org/viewtopic.php?id=2067528), sans le "i", ma solution se lance mais ne fonctionne pas bien. Elle se connecte au server mais avec plein de bugs.
Dernière modification par Q7frkz (Le 25/11/2021, à 08:54)
Hors ligne
#6 Le 25/11/2021, à 14:11
- Q7frkz
Re : Script qui se lance mais qui ne s'éteint pas
Bon c'est vraiment un enfer de trouver quelqu'un qui a un soucis qui ressemble au mien donc j'ai un peu triché.
Via Terminator je peux créer un profil avec un layout puis je peux donner une commande à chaque terminal dans une fenêtre, c'est beaucoup plus simple et ca fonctionne presque.
J'ai toujours un soucis avec des variables d'environnement je pense, d'où le -ic d'avant mais là je ne m'en sers plus car je n'ai plus de script ou disons qu'il se résume à
terminator -p IHM -l IHM
néanmoins je lance mon 3e terminal en commençant par source.bashrc, ce qui ne change rien.
donc avant de faire mon
subprocess.popen(command, shell=True)
je print mon environnement et en effet il manque la moitié des variables.
c'est chiant ..............
Tout ca pour avoir un raccourci sur le bureau
Je continue à chercher
Dernière modification par Q7frkz (Le 25/11/2021, à 14:12)
Hors ligne
#7 Le 26/11/2021, à 22:31
- kamaris
Re : Script qui se lance mais qui ne s'éteint pas
Sourcer un fichier ne suffit pas à faire des variables qu'il contient des variables d'environnement.
Il faut exporter ces variables.
Hors ligne
#8 Le 29/11/2021, à 16:23
- Q7frkz
Re : Script qui se lance mais qui ne s'éteint pas
Sourcer un fichier ne suffit pas à faire des variables qu'il contient des variables d'environnement.
Il faut exporter ces variables.
en effet je viens de découvrir cela.
ca améliore mais c'est pas encore ca (du moins ya énormément de variables d'environnement donc à moi de trouver celle qui manque)
je vois bien que si je compare l'environnement à celui d'un terminal basique, il manque des choses ne serait-ce que LS_COLORS, mais toutes celles qui touchent à ma solution ont l'air d'être là, depuis le
export ROS_PACKAGE_PATH
, ma solution se lance et fonctionne mais persiste quelques gros bug, comment charger tout l'environnement de base sans distinction ? Car si je lance sans mon icone sous le bureau tout marche très bien
Dernière modification par Q7frkz (Le 29/11/2021, à 16:28)
Hors ligne
#9 Le 29/11/2021, à 18:26
- kamaris
Re : Script qui se lance mais qui ne s'éteint pas
Il n'y a pas d'« environnement de base ».
Un programme doit savoir ce qu'il lui faut comme environnement, et sortir en erreur dès le départ si les conditions pour son bon fonctionnement ne sont pas réunies.
du moins ya énormément de variables d'environnement donc à moi de trouver celle qui manque
C'est bien ça qu'il faut faire
Hors ligne