Chtěl bych tmux vytvořit nové okno, když ssh na počítač z existující relace tmux. Nechci však, aby se na novém počítači spustila relace tmux!
Ve svém .bashrc mám následující , takže tmux automaticky se spustí:
if [[ "$TERM" != "screen" ]]
then
# try to attach to existing session, or start a new one
tmux attach-session -t "$USER" || tmux -2 new-session -s "$USER"
exit
fi
Mám také ssh funkce:
alias ssh='ssh_func'
ssh_func (){
if [[ "$TERM" == "screen" ]]; then
tmux new-window -n "$1" "ssh [email protected]";
else
/usr/bin/ssh "[email protected]";
fi
}
Funguje to dobře, ale nechci, aby se relace tmux spustila na počítači, na který jsem ssh, protože mi to dává 2 relace ve stejném okně terminálu. Je něco, co mohu vložit do svého .bashrc? aby se tmux nespustil na počítači, pokud byl příkaz ssh vyvolán z relace tmux?
Používám PuTTY a tmux 1.5.
Přijatá odpověď:
Pokud spouštíte ssh z prostředí tmux, budete mít podle kódu, který jste zveřejnili, $TERM =screen , takže se nebudete pokoušet připojit k oknu tmux. Jinými slovy, kód, který již máte, by měl fungovat podle potřeby. Děje se něco podezřelého. Ujistěte se, že vaše tečkové soubory nekazí TERM proměnná (pokud potřebujete upravit TERM , což je velmi vzácné, ujistěte se, že to děláte pouze za velmi specifických okolností; zejména jej neměňte, pokud je to screen ).