V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
oaa
V2EX  ›  分享创造

通过 pane option 来 save/load 你的 tmux session

  •  
  •   oaa ·
    woodgear · 6 天前 · 537 次点击

    https://smsmpulupulu.hashnode.dev/the-best-way-to-saverestore-your-tmux-session

    tmux 很好用。但当想用他来保存状态的话有几个问题

    tmux 自己只专注于终端分屏的部分,没有自带的保存 layout ,恢复 layout 的功能

    tmux 直到 2.3 的时候( 2016 年。。好像也不是很晚)的时候才支持 panel 级别的 title

    默认的 panel title 是自动变化的,当你 ssh 的时候,会自动变成远端的主机名。这个特性看起来很好。但是当你同时连接多个相同的节点时,很难单从主机名上回想起这个 pane 到底是想干什么 与之相对的 zellij 在 pane 重命名的部分做的就很不错。但这次我们还是主要讲 tmux 。。

    第一个点。save/load layout 实际上有很多 tmux 的衍生项目在做。

    tmuxinator tmuxp 这类的要义在于你先定义一个配置文件( yaml etc ),由这些工具帮你构造出一个 tmux 的 session 。(不过 tmuxp 提供了 freeze 命令 能够将当前的 layout 保存起来)

    tmux-resurrect 更是直接把自己做成了插件,让你能够通过快捷键,保存所有的 session 。

    tmux-resurrect 只能同时保存和还原所有的 session 。不能单独的保存/还原某个 session

    在我看来,以上这些工具的问题在于,他们想自己做的太全了。完全没有必要。在使用者自己提供了一些 hint 之后,体验就能做的更好好。

    5 条回复    2024-06-18 12:42:13 +08:00
    wisetc
        1
    wisetc  
       5 天前 via iPhone
    detach mode 不是就过大部分的场景,恢复 session 这种运行中的程序进程好像还是会遇到问题,对关机重启很有作用
    oaa
        2
    oaa  
    OP
       5 天前 via Android
    恩。所以我的想法就是在创建新 pane 的时候就要指定好如何重建这个 pane 。
    kuanat
        3
    kuanat  
       5 天前
    这个是不是考虑方向偏了?我觉得有必要明确区分 layout/session ,恢复 layout 是个容易的事情,但恢复 session 不是个很好的方向。

    我个人的意见,session 很廉价,完全可以预先开很多 session (习惯通过 systemd service 管理),无论是 ssh 还是本地连接的时候直接 attach 到对应的 session 里面。

    对于非重启环境,直接 detach 就可以了。对于重启环境,没想到要恢复 session 的应用场景。
    corvofeng
        4
    corvofeng  
       4 天前
    https://github.com/corvofeng/kubemux

    分享一下我写的这个工具, 也提供 tmuxinator 部分支持
    oaa
        5
    oaa  
    OP
       3 天前
    @kuanat 赞同,这里主要讲的确实是重建 session 。
    使用场景的话 比如你搞了个测试环境,各种 ssh 看日志什么的。现在电脑重启 或者要在别的电脑(家里的电脑之类的)上继续工作了。这个时候就需要重建 session 了。
    还有一种场景是 某些工作不是一口气能完成的,要想办法降低下次把这东西拾起来继续做的成本,这里指的就是建环境这部分的成本。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   950 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 20:04 · PVG 04:04 · LAX 13:04 · JFK 16:04
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.