Eu quero que o tmux inicie no login ssh.
O conselho típico é adicionar isso a ~/.bashrc
:
if [ -z "$TMUX" ] && [ -n "$SSH_TTY" ] && [[ $- =~ i ]]; then
tmux attach-session -t mysession 2>/dev/null || tmux new-session -s mysession
fi
Mas quando eu faço login, recebo este erro do tmux:
servidor perdido
...E então estou na festança como de costume.
ATUALIZAR
Quando eu adiciono um sono:
if [ -z "$TMUX" ] && [ -n "$SSH_TTY" ] && [[ $- =~ i ]]; then
tmux attach-session -t mysession 2>/dev/null || $(sleep 1 && tmux new-session -s mysession)
fi
...então funciona. Estranho! Qual é a razão?
Para iniciar
tmux
automaticamente em~/.bash_profile
(para shells de login) ou~/.bashrc
(para shells interativos), use algo comoIsso substituiria o shell por uma
tmux
sessão se o shell for iniciado porssh
, a menos que o shell atual já esteja sendo executado dentro dotmux
.Com versões mais recentes do
tmux
, você deve poder usarVocê gostaria de fazer isso depois de definir variáveis como
TERM
eLC_*
(se você as definir) que afetam os recursos e a localidade do terminal.Lembre-se que
ssh
precisa de um pseudo-tty para rodartmux
, então você deve se conectar comssh -t
(ou usarRequestTTY force
para~/.ssh/config
a conexão).