Dak*_*ine 204
是的,如果您重新启动计算机,您将丢失会话。会话无法保存。但是,它们可以编写脚本。事实上,大多数人所做的是编写一些会话的脚本,以便您可以重新创建它们。例如,这里有一个简单的 shell 脚本来创建会话:
#!/bin/zsh
SESSIONNAME="script"
tmux has-session -t $SESSIONNAME &> /dev/null
if [ $? != 0 ]
then
tmux new-session -s $SESSIONNAME -n script -d
tmux send-keys -t $SESSIONNAME "~/bin/script" C-m
fi
tmux attach -t $SESSIONNAME
Run Code Online (Sandbox Code Playgroud)
这就是它的作用。首先,它使用tmux has-session检查是否已经有任何具有该名称的会话(在这种情况下,原始名称是“script”)。它检查返回码。如果已经有一个使用该名称的正在进行的会话,它会跳过“if”循环并直接转到最后一行,在那里它附加到会话。否则,它会创建一个会话并向其发送一些密钥(现在只是运行一个随机脚本)。然后它退出“if”块并附加。
这是一个非常简单的示例。您可以在附加之前创建多个窗口、窗格等。
这会不会是你问同样的事情,但。如果您对会话进行了任何更改,例如您重命名一个窗口并在其中创建一个新窗格,如果您重新启动,这些更改当然不会被保存。
有一些工具可以简化脚本会话的过程,尽管我更喜欢手动操作(我认为它更通用)。这些工具是Tmuxinator和Teamocil。
我的主要信息来源是“实用书架”Tmux 书。
mis*_*lav 142
我编写了一个简单的 bash 脚本,在每个脚本中都保持打开的 tmux 会话、窗口和当前工作目录。
从 cron 手动或定期调用它(因为您可能会忘记):
tmux-session save
Run Code Online (Sandbox Code Playgroud)
它将写入~/.tmux-session. 重新启动后恢复它们,如下所示:
tmux-session restore
Run Code Online (Sandbox Code Playgroud)
我发现这比几百行长的 Perl 脚本要好得多。
小智 110
我写了一个 tmux 插件,可以让你保存完整的 tmux 环境并在以后恢复它。它力求做到非常详细,让您有一种永远不会退出 tmux 的感觉。
https://github.com/tmux-plugins/tmux-resurrect
更新:现在有一个tmux-continuum插件可以执行 tmux 环境的自动后台保存。可选地,它还*自动*在计算机重新启动后恢复 tmux 环境。