Actuellement, mes nouvelles instances Konsole apparaissent déjà dans une session tmux, qu'elle soit nouvelle ou attachée, puisque tmux est génial et que vous devriez toujours être dans tmux, n'est-ce pas ?
Cependant, cela me met dans une situation délicate si je souhaite me connecter à une session tmux gérée à distance. Actuellement, je suis obligé de prévoir avant d'ouvrir une nouvelle fenêtre Konsole que cette fenêtre ne doit pas être gérée par tmux local, et plutôt ouvrir une invite bash simple à partir de laquelle je peux "ssh host_foo -e tmux attach".
Idéalement, j'aimerais pouvoir détacher le processus client tmux en cours et passer automatiquement à l'invocation de ssh et de tmux à distance, qui serait basée sur la commande émise depuis 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 wrapper script pour appeler "tmux attach" en premier lieu, qui rechercherait une commande à appeler lors du détachement. Celle-ci pourrait être écrite dans un fichier par le script de détachement et d'envoi. Enfin, après que la partie externe de detach-and-ssh (qui est juste ssh) soit terminée, le script boucle à nouveau sur tmux attach.
Tant qu'une seule commande de détachement est exécutée à la fois, une seule commande post-détachement suffit. Cependant, il serait préférable de s'assurer que le script post-detach soit limité à ce seul client tmux. Si la session/client avait une certaine connaissance du PID spécifique du wrapper, é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 a-t-il essayé quelque chose de ce genre, et si oui, quelles leçons en avez-vous tirées ?
Note : veuillez ne pas no suggérer de faire fonctionner toutes les connexions distantes Windows sous mon tmux local. Le tmux local est sur un ordinateur portable qui hiberne et toutes mes sessions distantes en cours seront perdues à ce moment-là. Les sessions distantes ont vraiment besoin d'être gérées par un tmux distant.
Merci !