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 06/07/2020, à 18:11

felixN

[ssh -X] garder programme graphique actif en cas de perte de connexion

Bonjour,

J'ai un ordinateur exécutant ubuntu 18.04 (version desktop) embarqué sur un robot mobile.
J'ai créé un hospot wifi sur le robot (ubuntu), du coup je peux me connecter à distance (enfin à quelques mètres) depuis un ordinateur portable via ssh.
Pour les applications graphiques, je peux utiliser ssh -X

Le problème, c'est que durant mes tests, il est possible qu'à certain moments le robot s'éloigne trop, et que je perdes la connexion wifi. Le problème, c'est que du coup ça ferme mon/mes programmes.
Je cherche donc une solution pour que les programmes lancés depuis ssh -X continuent à tourner, et que quand je récupère la connexion wifi je puisse reprendre mon travail.

J'ai vu screen qui semblait prometteur, mais j'ai l'impression que la reconnexion ne marche pas dans le cas de programmes graphiques.

Est-ce que quelqu'un aurait une idée comment pouvoir garder tous les programmes (graphiques et non graphiques) actifs et y avoir de nouveau accès une fois la connexion wifi rétablie?

Merci d'avance
Felix

Hors ligne

#2 Le 06/07/2020, à 23:37

Vobul

Re : [ssh -X] garder programme graphique actif en cas de perte de connexion

Salut,

Alors oui en effet quand tu ssh je recommande fortement non pas screen mais tmux (c'est comme screen mais en mieux). Ça c'est la base.

Ensuite la solution se trouve sûrement du côté de Mosh. C'est genre ssh mais conçu pour les réseaux instables. Pas dit que ça fonctionne mais ça vaut le coup d'essayer.

Et pour finir je dirai : mais pourquoi 1/ installer ubuntu DESKTOP sur un robot ??? 2/ utiliser des applications graphiques !!! Ok c'est possible d'accord, ssh -X fonctionne bien, mais sérieusement, tu peux pas faire les trucs en CLI ? C'est quoi l'app que tu utilises sur ton robot ?


Vobul
Utilisez le retour utilisable de commandes !!!
J'aime la langue française, mais je parle franglais, deal with it.
RTFM

Hors ligne

#3 Le 07/07/2020, à 08:30

felixN

Re : [ssh -X] garder programme graphique actif en cas de perte de connexion

Bonjour,
et merci!
Je vais regarder du coté de tmux et de de Mosh.

Pour répondre à tes questions (je réponds depuis la fin)
3) Le robot, c'est nous qui le développons : du coup, c'est un mélange entre des noeuds ROS existants, des noeuds ROS qu'on écrit nous même et éventuellement quelques logiciels d'exemples fourni avec des capteurs le temps qu'on les intègre à notre code
2)Au final, oui, tout devrait être en ligne de commande, et il n'y aura plus besoin d’environnement graphique. Mais pour le développement, c'est quand même bien pratique de pouvoir visualiser des données (graphes d'évolutions de la valeur d'un topic ROS, résultats du traitement des images de la caméra, position sur la carte, aspect de la carte locale d'obstacles, ...)
1) - mon prédécesseur avait déjà installé ubuntu DESKTOP (du coup, j'ai pas envie de tout réinstaller)
- exécuter des applications graphiques peut être pratique pour débuger (cf 2)
- l'ordinateur embarqué est plus puissant que les ordis qu'on a pour le développement, du coup certains programmes vraiment lourds (en particulier le traitement des images de la caméra stéréoscopique) ne peuvent tourner que sur le robot

Hors ligne

#4 Le 07/07/2020, à 11:03

Hizoka

Re : [ssh -X] garder programme graphique actif en cas de perte de connexion

Je ne connaissais pas tmux, je m'en vais le tester smile

Merci


KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github

Hors ligne

#5 Le 07/07/2020, à 12:06

Vobul

Re : [ssh -X] garder programme graphique actif en cas de perte de connexion

Ah bah tmux c'est la base. Et avec tmuxinator pour créer une session au poil c'est super. Et puis ça dans le ~/.zshrc :

if [ "$TERM" != "linux" ] ; then
    if ! tmux list-sessions > /dev/null 2>&1; then
        if [ -r ${HOME}/.zsh/tmuxinator.zsh ]; then
            tmuxinator vobul
        else
            tmux
        fi
    fi
fi

Vobul
Utilisez le retour utilisable de commandes !!!
J'aime la langue française, mais je parle franglais, deal with it.
RTFM

Hors ligne