SSH : Impossible de quitter la session
Bonjour, J'ai un problème assez étrange. Je dois démarrer une application qui est répartie sur plusieurs serveurs. Sur chaque serveur, il existe un script de démarrage dans /etc/init.d/ Sur une des machines, j'ai un script général qui fait des ssh r...@iautreserveur /etc/init.d/appli start Une des machine héberge un serveur MicroFocus qui ne peut démarrer depuis une session SSH (TERM=dumb). L'appli se crache en donnant le message Run-time message 191: Terminal type not defined (Fatal). J'ai résolu le problème en forçant la variable TERM à vt100. L'appli se lance, le script arrive bien à la dernière ligne mais semble s'arrêter là. Donc mon script principal reste bloqué sur le SSH :(. - Exit ne fonctionne pas - Un suicide du process non plus (kill $$). J'ai essayé de lancer le ssh en ligne de commande idem. Le script lancé en local sur son serveur, fonctionne et je peux quitter le terminal (konsole TERM=xterm) En remote même avec xterm, ça ne fonctionne pas. J'ai crée un autre script qui se contente de changer la variable TERM et de faire un ls. Ca fonctionne. Je n'y comprends plus rien. Comment une appli peut-elle empécher la fin d'un script et/ou d'une session ? Quelqu'un a-t-il une idée ? -- Thierry Leurent -- Lisez la FAQ de la liste avant de poser une question : http://wiki.debian.org/fr/FrenchLists Vous pouvez aussi ajouter le mot ``spam'' dans vos champs From et Reply-To: Pour vous DESABONNER, envoyez un message avec comme objet unsubscribe vers debian-user-french-requ...@lists.debian.org En cas de soucis, contactez EN ANGLAIS listmas...@lists.debian.org
Re: SSH : Impossible de quitter la session
Thierry Leurent a écrit : [...] Je n'y comprends plus rien. Comment une appli peut-elle empécher la fin d'un script et/ou d'une session ? Quelqu'un a-t-il une idée ? Salut Thierry, L'appli n'empêche pas la fin du script. Ton script se termine bien. En revanche, lorsque ton application passe en mode démon, elle effectue un fork (appel système) pour cloner le processus. Le processus père, celui que tu as lancé, se termine et te rend la main alors que le processus fils reste en mémoire pour effectuer son boulot. Le problème vient certainement de la procédure de démonisation qui ne referme pas les descripteurs de fichier par défaut (stdin, stdout, stderr). Tant que ces descripteurs de fichier ne sont pas refermés (ou redirigés vers d'autres sources/destinations comme un fichier ou /dev/null), le processus SSH ne pourra pas terminer sa connexion. Il me semble que SSH dispose d'options pour résoudre ce problème mais je ne m'en souviens plus (cf man). Sinon, tu peux essayer d'ajouter des /dev/null 21 à la fin de la commande qui exécute ton appli, ou encore, tu peux lancer la commande dans un screen qui capturera ces descripteurs de fichier et les libèrera lorsque tu le détacheras avant de refermer ta session SSH. A+ Fanfan -- Lisez la FAQ de la liste avant de poser une question : http://wiki.debian.org/fr/FrenchLists Vous pouvez aussi ajouter le mot ``spam'' dans vos champs From et Reply-To: Pour vous DESABONNER, envoyez un message avec comme objet unsubscribe vers debian-user-french-requ...@lists.debian.org En cas de soucis, contactez EN ANGLAIS listmas...@lists.debian.org