Prolonging terminal sessions/fr: Difference between revisions

From Alliance Doc
Jump to navigation Jump to search
No edit summary
No edit summary
Line 16: Line 16:
{{box|<b>Login node dependency</b>
{{box|<b>Login node dependency</b>
<br>
<br>
Chacune de nos grappes comprend plusieurs nœuds et votre session <code>tmux</code> ou <code>screen</code> est dépendante du nœud de connexion. Pour vous rattacher à une session, vous devez utiliser le même nœud de connexion que celui avec lequel vous avez lancé <code>tmux</code> ou <code>screen</code>. Il arrive qu'un nœud de connexion soit redémarré, ce qui élimine les sessions qui se trouve sur ce nœud.}}   
Chacune de nos grappes comprend plusieurs nœuds et votre session <code>tmux</code> ou <code>screen</code> est dépendante du nœud de connexion. Pour vous rattacher à une session, vous devez utiliser le même nœud de connexion que celui avec lequel vous avez lancé <code>tmux</code> ou <code>screen</code>. Il arrive qu'un nœud de connexion soit redémarré, ce qui élimine les sessions qui se trouvent sur ce nœud.}}   


==tmux==
==tmux==

Revision as of 15:53, 4 July 2023

Other languages:

Pour soumettre et faire le suivi des tâches, modifier des fichiers et plusieurs autres opérations, vous aurez peut-être besoin de vous connecter à une grappe via SSH. Il est quelquefois nécessaire de garder la connexion active pendant plusieurs heures, même plusieurs jours. Nous décrivons ici certaines techniques pour ce faire.

Configuration de SSH

Une solution simple pour prolonger une connexion est de modifier la configuration de votre client SSH. Avec MacOS et Linux, cette configuration se trouve dans $HOME/.ssh/config alors qu'avec Windows elle est dans C:\Users\<username>\.ssh\config. Si le fichier n'existe pas, vous devez le créer at ajouter les lignes

Host *
    ServerAliveInterval 240

Par la connexion SSH, ceci transmet un signe de vie à un serveur distant (comme une grappe de l'Alliance) à toutes les 240 secondes (4 minutes), ce qui devrait garder la connexion vivante même si elle est inactive pendant quelques heures.

Multiplexeur de terminal

Les programmes tmux et screen sont des exemples de multiplexeurs de terminal qui vous permettent de complètement détacher une session de terminal qui restera active jusqu'à ce qu'elle soit rattachée de nouveau. Vous pouvez donc vous déconnecter de la grappe, fermer le poste de travail ou le mettre en veille prolongée, puis reprendre le travail le lendemain en vous rattachant à la même session.

Login node dependency
Chacune de nos grappes comprend plusieurs nœuds et votre session tmux ou screen est dépendante du nœud de connexion. Pour vous rattacher à une session, vous devez utiliser le même nœud de connexion que celui avec lequel vous avez lancé tmux ou screen. Il arrive qu'un nœud de connexion soit redémarré, ce qui élimine les sessions qui se trouvent sur ce nœud.

tmux

Le logiciel tmux est un multiplexeur de terminal qui permet plusieurs sessions virtuelles à l'intérieur d'une même session de terminal. Vous pouvez donc vous déconnecter d'une session SSH sans que les processus ne soient affectés.

Pour une introduction à tmux :

Aide-mémoire

Voyez la documentation complète.

Commande Description
tmux Démarrer le serveur
Ctrl+B D Se déconnecter du serveur
tmux a Se reconnecter au serveur
Ctrl+B C Créer une nouvelle fenêtre
Ctrl+B N Aller à la prochaine fenêtre
Ctrl+B [ Activer le mode copie pour défilement avec la souris et les touches page suivante et page précédente
Esc Désactiver le mode copie

Utiliser tmux dans une tâche soumise par tmux

Si vous utilisez tmux pour soumettre une tâche et que vous tentez de lancer tmux à l’intérieur de cette tâche, vous obtiendrez le message d'erreur lost server. Ceci est dû au fait que la variable d'environnement $TMUX, qui pointe vers le serveur tmux sur le nœud de connexion, est propagée à la tâche. La valeur de la variable n'est donc pas valide. Vous pouvez la réinitialiser avec

Question.png
[name@server ~]$ unset TMUX

Cependant, l'usage de deux (ou plus) niveaux de tmux n'est pas pas recommandé. Pour envoyer des commandes à un tmux imbriqué, il faut taper deux fois les touches Ctrl+B; par exemple, pour créer une fenêtre, il faut taper Ctrl+B Ctrl+B C. Considérez plutôt d'utiliser GNU Screen (ci-dessous) à l'intérieur de vos tâches (si vous utilisez tmux sur un nœud de connexion).

GNU Screen

Le programme GNU Screen est un autre multiplexeur de terminal souvent utilisé. Créez une session de terminal détachée avec

Question.png
[name@server ~]$ screen -S <session name>

Donnez à vos sessions des noms faciles à retenir. Pour voir la liste des sessions détachées sur un nœud utilisez la commande screen -list.

Question.png
[name@server ~]$ screen -list
There is a screen on:
        164133.foo      (Attached)
1 Socket in /tmp/S-stubbsda.

Pour vous attacher à une de vos sessions, utilisez screen -d -r <session name>.