Mes nouvelles instances de Konsole apparaissent déjà dans une session tmux, qu'elles soient nouvelles ou associées, car tmux est génial et vous devriez toujours être à l'intérieur de tmux, n'est-ce pas?
Cependant, cela me met dans une impasse si je souhaite me connecter à une session tmux gérée à distance. À l'heure actuelle, je suis obligé de planifier avant d'ouvrir une nouvelle fenêtre Konsole que cette fenêtre ne soit pas gérée par tmux local, et d'ouvrir plutôt une invite simple bash à partir de laquelle je peux "ssh host_foo -e tmux attach".
Idéalement, j'aimerais pouvoir détacher le processus client tmux actuel et continuer automatiquement à l'invocation ssh et tmux à distance, qui serait basée sur toute commande émise à partir de la session. Je m'attends à ce que l'interaction fonctionne comme suit:
[me@local] ~ $ tmux attach
.... pop into local tmux session ....
[me@local] ~/tmuxdir $ ls
tmuxfile1 tmuxfile2
[me@local] ~/tmuxdir $ detach-and-ssh foo
.... pops out of local tmux session ....
.... and into remote tmux session on host foo ....
[me@foo] ~ $ ls
remotefile1 remotefile2
[me@foo] ~ $ tmux detach
.... pops out of remote tmux session ....
.... and back into local tmux session ....
[me@local] ~/tmuxdir $
J'ai le sentiment que cela pourrait être réalisé en écrivant un script wrapper appelant «tmux attach» en premier lieu, qui chercherait une commande à appeler détachée. Cela pourrait être écrit dans un fichier par le script detach-and-ssh. Enfin, une fois que la partie externe de detach-and-ssh (qui est simplement ssh) est terminée, le script effectue une boucle en boucle pour que tmux s'attache à nouveau.
Tant qu'une seule commande de détachement est exécutée à la fois, une seule commande de post-détachement suffit. Cependant, il serait préférable de s’assurer que le script post-détaché est limité à ce client tmux uniquement. Si la session / le client connaissait le PID du wrapper spécifique, éventuellement via des variables d'environnement ou une autre variable tmux, la commande post-detach pourrait être écrite dans un fichier spécifique au PID.
Quelqu'un at-il essayé quelque chose comme ça, et si oui, quelles ont été les leçons apprises?
Note: s'il vous plaît faire ne pas suggère d'exécuter toutes les fenêtres de connexion à distance sous mon tmux local. Le tmux local se trouve sur un ordinateur portable en veille prolongée et toutes mes sessions distantes en cours d’exécution seront perdues à ce stade. Les sessions distantes doivent vraiment être gérées par un tmux distant.
Merci!