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 13/10/2021, à 11:39

Q7frkz

Script lancement solution / source bashrc

Bonjour à vous,

J'ai codé un projet en python et pour le lancer, je dois faire dans un terminal:

roscore

qui lance un serveur

puis

cd Documents/Sources/LaunchGUI/
./LaunchGui

qui lance mon interface graphique

Le code de cette interface graphique est le suivant:

#!/bin/bash

source ~/.bashrc
python ./__init__.py

Il m'est demandé de faire une icone sur le bureau sur laquelle après double clic, j'automatise le lancement d'un terminal avec deux onglets qui lance les commande ci-dessus:
IHM.desktop

[Desktop Entry]
Type=...
Name=...
Generic...=...
Icon=...
Exec=/home/.../Documents/Sources/LaunchGUI/launchGui.sh

Cela marche très bien
launchGui.sh

#!/bin/bash
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"

Ce script ouvre un terminal avec deux onglets dans Ubuntu puis lance ma solution et roscore

Après tout ca, mon soucis vient du fait que si je lance manuellement ma solution, celle-ci fonctionne parfaitement, si je lance via cette icone sur mon bureau tout se lance mais ma solution n'est pas entièrement fonctionnelle. Je ne comprends pas où est la faute mais je suis à peu près sûr que le fait de lancer de nouveaux terminaux pose problème avec des <<source .bashrc>> ou <<source setup.bash>>, je pense que les nouveaux terminaux ne profitent pas de variables qui sont utilisées quand je lance manuellement.

Bon c'est un peu le bordel ce que je vous présente mais bon si vous parvenez à me faire profiter de vos lumières je serai très heureux !

Merci beaucoup !

Hors ligne

#2 Le 13/10/2021, à 15:53

kamaris

Re : Script lancement solution / source bashrc

Q7frkz a écrit :

je pense que les nouveaux terminaux ne profitent pas de variables qui sont utilisées quand je lance manuellement.

Si tu penses ça, tu devrais aller au bout et tracer leurs valeurs pour vérifier smile
Sinon tu sources setup.bash dans launchGui.sh alors que tu n'en avais pas parlé dans la procédure décrite en intro.
Ce sourçage est sans effet direct (à moins d'exports) sur les terminaux lancés ensuite : il faut le faire dans les terminaux en question si c'est utile à ce qui s'exécute dedans.
Tu as aussi inversé l'ordre de lancement entre le serveur et la GUI dans launchGui.sh, si jamais ça a de l'importance…

Hors ligne