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

2019-01-09 11:05:14 +08:00
 thinkycx
今天一不小心 rm -rf /tmp 了,结果发现 tmux 的 session 都不见了。

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

已经安装了 tmux-continuum 和 tmux-resurrect 插件,用来保存恢复 session 和定时保存 session 的,但是似乎不能修改 session 的存储位置。
7204 次点击
所在节点    tmux
7 条回复
pkookp8
2019-01-09 11:24:09 +08:00
借楼顺便问一下
恢复 session,或者 vim 中启动一个 shell
都只有.bashrc 环境变量,没有.bash_profile,这是为何
Kobayashi
2019-01-10 12:42:21 +08:00
现在的人既不看 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
2019-01-10 13:50:21 +08:00
@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
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
2019-01-10 14:50:11 +08:00
@pkookp8 忘了 at
Kobayashi
2019-01-10 15:09:57 +08:00
关于 resurrect,自己尝试了一下,修改 default-shell 带-l 参数不行,会立即退出。修改 default-command 可行。
thinkycx
2019-01-12 12:56:45 +08:00
@Kobayashi 感谢回答。最初学习 linux 的时候觉得 man 很强大,后来逐渐逐渐依赖于搜索,没有打开 man 的习惯了,值得反思。

# tmux 指定 socket 存储路径:
tmux -S ~/tmux-new-socket-name

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/525289

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX