V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
thinkycx
V2EX  ›  tmux

tmux 如何修改默认存储 session 的路径?

  •  
  •   thinkycx · 2019-01-09 11:05:14 +08:00 · 7265 次点击
    这是一个创建于 2182 天前的主题,其中的信息可能已经有所发展或是发生改变。
    今天一不小心 rm -rf /tmp 了,结果发现 tmux 的 session 都不见了。

    tmux session 默认存储的路径的 /tmp/tmux-ID/。
    可以在配置文件中修改这个路径吗?

    已经安装了 tmux-continuum 和 tmux-resurrect 插件,用来保存恢复 session 和定时保存 session 的,但是似乎不能修改 session 的存储位置。
    7 条回复    2019-01-12 12:56:45 +08:00
    pkookp8
        1
    pkookp8  
       2019-01-09 11:24:09 +08:00 via Android
    借楼顺便问一下
    恢复 session,或者 vim 中启动一个 shell
    都只有.bashrc 环境变量,没有.bash_profile,这是为何
    Kobayashi
        2
    Kobayashi  
       2019-01-10 12:42:21 +08:00 via Android   ❤️ 1
    现在的人既不看 manual 也不搜索,是吧?

    man tmux, /socket
    不能指定 socket 默认的存储文件夹,但是可以-S 为单个 session 指定 socket 存储文件位置。

    resurrect 可以指定保存 session 的存储文件夹。
    https://stackoverflow.com/questions/43443355/changing-the-location-where-tmux-saves-sessions

    @pkookp8 tmux 默认就是 login shell,你改动过 default-shell。
    tmux show -g default-shell
    pkookp8
        3
    pkookp8  
       2019-01-10 13:50:21 +08:00 via Android
    @Kobayashi
    default-shell "/bin/bash"
    没有改动过,新建一个 session 或 pane 都是正常的,唯独重启后使用 resurrect 插件恢复时部分 pane 会需要手动 source .bash_profile
    同样的,vim 中:sh 也没有 source .bash_profile,但有.bash_rc
    我是有找到 vim 可以设置 set shell=bash\ login,但 tmux 没找到原因
    Kobayashi
        4
    Kobayashi  
       2019-01-10 14:49:56 +08:00
    兄弟,既然清除是 resurrect 问题,就去找 resurrect 啊……

    https://github.com/tmux-plugins/tmux-resurrect/issues/94

    如上 issue 中所说,此为 tmux-resurrect 一个 bug. resurrect 恢复时默认执行 default-command 内容,default-command 未设置时回落到 default-shell. 但与 tmux 不同,tmux-resurrect 不会将 default-shell 解释为 login shell,但是 tmux 却默认使用 default-shell 作为 login shell,问题就在这儿。有人提交了 pr 但是还未被合并。

    覆写 default-command 或 default-shell 为 /bin/bash -l 应该可行。(这个临时解决方案这个 issue 下也有人给出)
    Kobayashi
        5
    Kobayashi  
       2019-01-10 14:50:11 +08:00
    @pkookp8 忘了 at
    Kobayashi
        6
    Kobayashi  
       2019-01-10 15:09:57 +08:00
    关于 resurrect,自己尝试了一下,修改 default-shell 带-l 参数不行,会立即退出。修改 default-command 可行。
    thinkycx
        7
    thinkycx  
    OP
       2019-01-12 12:56:45 +08:00
    @Kobayashi 感谢回答。最初学习 linux 的时候觉得 man 很强大,后来逐渐逐渐依赖于搜索,没有打开 man 的习惯了,值得反思。

    # tmux 指定 socket 存储路径:
    tmux -S ~/tmux-new-socket-name
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2333 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 16:02 · PVG 00:02 · LAX 08:02 · JFK 11:02
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.