Tutoriel Linux

Garder une session d’administration Linux ouverte avec tmux

Débutant4 min de lecture

Une longue commande lancée par SSH peut continuer après une coupure réseau, mais vous perdez sa sortie et parfois le contexte dans lequel elle tourne. tmux garde une session sur le serveur. Vous pouvez la détacher, fermer votre terminal local, puis la reprendre plus tard depuis une autre connexion.

Ce guide part d’un cas simple : lancer une maintenance, suivre ce qu’elle affiche, puis retrouver exactement la même session sans ouvrir plusieurs terminaux au hasard. Il ne remplace pas une procédure de maintenance ni une seconde session SSH quand l’opération est risquée.

Tux garde une session tmux ouverte devant une baie de serveurs Linux
tmux conserve une session sur le serveur après la fermeture du terminal local.

Créer une session tmux nommée

Installez tmux depuis les dépôts si la commande n’existe pas. Sur Debian ou Ubuntu, utilisez sudo apt install tmux. Sur Fedora, la commande est sudo dnf install tmux. Vérifiez ensuite la version :

tmux -V

Créez ensuite une session avec un nom qui décrit le travail en cours. Évitez tmux new seul si vous gérez plusieurs serveurs ou plusieurs interventions dans la journée :

tmux new -s maintenance-web

Vous êtes maintenant dans un shell hébergé par tmux. Lancez vos commandes normalement. Pour une mise à jour ou une migration, notez dans votre ticket ou votre terminal local le nom de session et l’hôte concerné. Ce nom ne prouve pas que vous êtes sur le bon serveur, il évite seulement de reprendre une session inconnue.

Détacher la session sans arrêter ce qui tourne

La combinaison par défaut commence par Ctrl+b. Relâchez les touches, puis appuyez sur d. tmux vous rend alors le shell SSH normal tandis que les processus restent dans la session distante.

Vous pouvez aussi détacher une session depuis un autre terminal. Commencez par lister ce qui existe :

tmux ls
# ou
tmux list-sessions

Une ligne comme maintenance-web: 1 windows (created ...) indique qu’une session porte ce nom. Pour la reprendre, ciblez-la explicitement :

tmux attach -t maintenance-web

Si elle est encore affichée dans un autre terminal, utilisez tmux attach -d -t maintenance-web pour détacher l’autre client avant de vous connecter. Ne faites pas cela pendant qu’un collègue suit une intervention dans cette même fenêtre.

Séparer les fenêtres d’une même intervention

Une session tmux peut contenir plusieurs fenêtres. Gardez par exemple une fenêtre pour les logs, une autre pour la commande de maintenance et une troisième pour les vérifications. Créez une fenêtre nommée depuis le shell :

tmux new-window -t maintenance-web -n logs
journalctl -fu nginx

Dans tmux, Ctrl+b puis n passe à la fenêtre suivante. Ctrl+b puis w affiche la liste. Ces raccourcis évitent de mélanger la sortie d’un service et une commande qui modifie le système.

Pour une opération sensible, ouvrez une seconde connexion SSH indépendante avant de lancer quoi que ce soit : elle sert à vérifier la charge, les logs ou à arrêter proprement un processus si la première session devient inutilisable. tmux protège la continuité d’affichage, pas la configuration réseau, le disque ou le service que vous êtes en train de modifier.

Fermer uniquement la bonne session

Quand le travail est terminé, quittez le shell de la fenêtre avec exit. Si c’est la dernière fenêtre, tmux ferme la session. Vous pouvez aussi la supprimer par son nom :

tmux kill-session -t maintenance-web

Listez d’abord les sessions avec tmux ls. La commande tmux kill-server ferme toutes les sessions tmux du compte courant, elle n’est pas adaptée à un serveur partagé.

Si vous cherchez seulement une session persistante très simple, Screen sous Linux reste une alternative valable. tmux devient plus confortable dès que vous devez garder plusieurs fenêtres, les nommer et revenir précisément sur une intervention.

La documentation officielle détaille les commandes et les raccourcis disponibles dans le manuel tmux. Avant une intervention en production, créez une session de test sur une machine non critique : vous verrez tout de suite ce que le détachement conserve et ce qu’il ne sauvegarde pas.