Isso aconteceria se você iniciasse um novo shell interativo sobre o iniciado por ssh . Um novo shell seria iniciado se você, por exemplo, executasse screen ou tmux (ou bash ou algum outro shell para essa matéria) dos arquivos de inicialização do shell (por exemplo, ~/.bash_profile for bash ) ou de algum arquivo de inicialização do shell em todo o sistema em /etc .
A partir de lá, screen ou tmux suspenderia temporariamente a inicialização do shell inicial enquanto o outro processo estivesse em execução. Quando você sair de screen ou tmux , a sessão inicial do shell fornecerá um novo prompt para o qual você deve sair separadamente.
Para contornar isso, em vez de usar apenas screen ou tmux , use exec screen ou exec tmux . Isso substituirá o shell atual pelo processo apropriado.
Se você fizer dessa maneira, certifique-se de que nenhuma configuração adicional seja necessária após a chamada para exec , já que essa chamada nunca retornará o controle para o script de inicialização (a menos que ocorra um erro na execução de exec ). / p>
Este é um exemplo do meu próprio arquivo ~/.profile (não uso bash ) para iniciar tmux quando eu fizer login:
if [ -z "$TMUX" ] && [ -z "$DISPLAY" ]; then
if tmux has-session; then
exec tmux attach-session
else
exec tmux
fi
fi
Isso substituiria o shell atual por tmux se a sessão do shell já não estivesse em execução em uma tmux session ( TMUX seria definida se estivesse) e também se não estivéssemos em um ambiente gráfico ( DISPLAY seria definido se fôssemos). Se houver uma sessão tmux , esta sessão será anexada, caso contrário, uma nova será iniciada.