В настоящее время мои новые экземпляры Konsole уже появляются в сеансе tmux, будь то новый или подключенный, поскольку tmux потрясающий, и вы всегда должны быть внутри tmux, верно?
Тем не менее, это ставит меня в тупик, если я хочу подключиться к удаленно управляемому сеансу tmux. В настоящее время я вынужден планировать перед открытием нового окна Konsole, что этим окном не должно управлять локальное tmux, и скорее открыть простое приглашение bash, из которого я могу "ssh host_foo -e tmux attach".
В идеале я хотел бы иметь возможность отсоединить текущий клиентский процесс tmux и автоматически переходить к ssh и удаленному вызову tmux, который будет основываться на любой команде, выданной из сеанса. Я ожидаю, что взаимодействие будет работать следующим образом:
[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 $
У меня есть ощущение, что этого можно достичь, написав скрипт-обертку для вызова "tmux attach" в первую очередь, который будет искать команду для вызова при отсоединении. Это может быть записано в файл скриптом detach-and-ssh. Наконец, после того, как внешняя часть detach-and-ssh (то есть просто ssh) завершена, скрипт снова возвращается к tmux attach.
Пока одновременно выполняется только одна команда отсоединения, достаточно одной команды после отсоединения. Однако было бы лучше убедиться, что скрипт post-detach будет ограничен только этим клиентом tmux. Если у сеанса / клиента были какие-то сведения о конкретном PID-обертке, возможно, через переменные окружения или какую-либо другую переменную tmux, команда post-detach могла быть записана в PID-специфичный файл.
Кто-нибудь пробовал что-то подобное, и если да, то какие уроки были извлечены?
Примечание: пожалуйста, не предлагайте запускать все окна удаленного подключения под моим локальным tmux. Локальный tmux находится на переносном компьютере, и в этот момент все мои удаленные сеансы будут потеряны. Удаленные сеансы действительно должны управляться удаленным tmux.
Спасибо!