如何将当前会话从 GNU screen 移动到 tmux?

如何将当前会话从 GNU screen 移动到 tmux?

我的 IRC 客户端irssi当前在 GNUscreen会话中处于活动状态。
事后看来,我希望我使用tmux而不是 GNU screen
如何将活动进程(或会话)从 GNU 迁移screentmux

答案1

使用reptyr

我的另一个答案提供了有用的详细信息。它是关于将外部进程迁移到screen/ tmux,但我刚刚在我的 Debian 9 上进行了测试并成功迁移htop screentmux

找到 的 PID 后htop,我reptyr PID从 内部的 shell调用tmux。然后我返回screen并完全终止它;这包括退出已启动 的 shell htophtop连接到 提供的 tty 确实幸存了下来tmux。我相信你的irssi也会幸存下来。

exec reptyr PIDtmux new-window 'reptyr PID'也可以工作,尽管 tmux 服务器和 之间没有 shell reptyr。如果reptyr PID在交互式 shell 中调用简单 shell,shell 会继续运行,捕获的进程最终终止后,您将返回到它。

答案2

不幸的是,目前无法将活动会话从 迁移screentmux,因为尚未开发出相关功能。它们是完全不同的应用程序,不支持管理彼此的会话 - 未来可能会有所改变,但自 2016 年 4 月起,这已无法实现。

我建议的解决方法是将您现有的irssi屏幕会话附加到一个tmux窗口内。换句话说,screen -r在其中一个tmux窗口内执行。如果它们的键绑定发生冲突,您可能会遇到一些冲突(例如,如果您将tmux热键重新映射到Ctrl-A屏幕默认设置),但您至少可以只使用一个应用程序,而不是两个。

相关内容