Résumé : j'essaie de comprendre pourquoi ma session tmux meurt lorsque je me déconnecte de ssh
Détails :
J'ai installé tmux sur un système Arch Linux. Lorsque je démarre une session tmux, je peux m'en détacher puis la rattacher pendant que la session ssh est active. Mais si je termine ma session ssh, la session tmux est tuée.
Je sais que ce n'est pas le comportement normal car j'ai un autre système où la session tmux continue de fonctionner même si la session ssh est terminée et je peux me connecter à la session tmux après avoir établi une nouvelle connexion ssh. Le système qui a un problème et celui qui fonctionne correctement ont des configurations très similaires, donc je ne sais pas quoi vérifier.
J'utilise la version 1.9a de tmux. Le système qui a un problème (pour lequel j'ai un accès root) a une version du noyau Linux de 3.17.4-1 et le système qui fonctionne correctement a la version du noyau 3.16.4-1-ARCH (je n'ai pas de racine sur ce système). Je doute que la version du noyau soit la source du problème, c'est juste une différence que j'ai remarquée.
J'ai pensé que je demanderais à voir si quelqu'un a vu un problème similaire et connaît une solution possible.
Les étapes précises qui conduisent au problème sont les suivantes:
- ssh à usiner
- courir
tmux
pour démarrer tmux ctrl-B D
à détacher (à ce stade, je pourrais rattacher avectmux attach
- fermer la session ssh (à ce stade, la session tmux est interrompue, j'ai pu l'observer lorsque je suis connecté en tant que root dans un autre terminal)
- reconnectez-vous avec ssh et exécutez
tmux attach
et je reçois le messageno sessions
et lestmux ls
retours en cours d'exécutionfailed to connect to server: Connection refused
. Cela a du sens car le service n'est pas en cours d'exécution. Ce qui n'a pas de sens pour moi, c'est pourquoi il est tué à l'étape 4 lorsque je me déconnecte de la session ssh.
données strace:
En réponse à l'un des commentaires, j'ai utilisé strace pour voir ce que les systèmes appellent le processus du serveur tmux. Il semble que lorsque je quitte ma session ssh (en tapant exit
ou avec ctrl-d
), le processus tmux est en cours de suppression. Voici un extrait de la dernière partie de la sortie strace.
poll([{fd=4, events=POLLIN}, {fd=11, events=POLLIN}, {fd=6, events=POLLIN}], 3, 424) = ? ERESTART_RESTARTBLOCK (Interrupted by signal)
--- SIGTERM {si_signo=SIGTERM, si_code=SI_USER, si_pid=1, si_uid=0} ---
sendto(3, "\17", 1, 0, NULL, 0) = 1
+++ killed by SIGKILL +++
J'ai comparé cela à un système différent où tmux fonctionne correctement et sur ce système, le processus tmux continue de fonctionner même après ma sortie. Ainsi, la cause première semble être que le processus tmux se termine lorsque je ferme la session ssh. Je vais devoir passer un peu de temps à résoudre ce problème pour comprendre pourquoi, mais j'ai pensé que je mettrais à jour ma question car la suggestion de strace était utile.