我希望 tmux 在 ssh 登录时启动。
典型的建议是将其添加到~/.bashrc
:
if [ -z "$TMUX" ] && [ -n "$SSH_TTY" ] && [[ $- =~ i ]]; then
tmux attach-session -t mysession 2>/dev/null || tmux new-session -s mysession
fi
但是当我登录时,我从 tmux 收到此错误:
服务器丢失
...然后我像往常一样在 bash 中。
更新
当我添加睡眠时:
if [ -z "$TMUX" ] && [ -n "$SSH_TTY" ] && [[ $- =~ i ]]; then
tmux attach-session -t mysession 2>/dev/null || $(sleep 1 && tmux new-session -s mysession)
fi
...然后它的工作原理。奇怪的!是什么原因?
要
tmux
在~/.bash_profile
(对于登录 shell)或~/.bashrc
(对于交互式 shell)中自动启动,请使用类似tmux
如果 shell 由 启动,这将用会话替换 shellssh
,除非当前 shell 已经在其中运行tmux
。使用较新版本的
tmux
,您应该能够使用您可能希望在设置影响终端功能和语言环境的变量后
TERM
执行此操作,如和LC_*
(如果您设置了这些)。请记住,
ssh
需要一个伪 tty 才能运行tmux
,因此您必须连接ssh -t
(或RequestTTY force
用于~/.ssh/config
连接)。