Je voudrais tmux
pour créer une nouvelle fenêtre lorsque je ssh sur une machine à partir d'une session tmux existante. Cependant, je ne souhaite pas qu'une session tmux soit démarrée sur la nouvelle machine !
J'ai ce qui suit dans mon .bashrc
, de sorte que tmux
démarre automatiquement :
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
J'ai aussi un ssh
fonction :
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
}
Cela fonctionne bien, mais je ne veux pas qu'une session tmux soit démarrée sur la machine sur laquelle je ssh, car cela me donne 2 sessions dans la même fenêtre de terminal. Y a-t-il quelque chose que je puisse mettre dans mon .bashrc
afin que tmux ne démarre pas sur une machine si la commande ssh a été invoquée depuis une session tmux ?
J'utilise PuTTY et tmux 1.5.
Réponse acceptée :
Étant donné le code que vous avez posté, si vous exécutez ssh depuis tmux, vous aurez $TERM
=screen
, vous n'essayerez donc pas de vous attacher à une fenêtre tmux. En d'autres termes, le code que vous avez déjà devrait fonctionner comme vous le souhaitez. Il se passe quelque chose de louche. Assurez-vous que vos fichiers de points ne gâchent pas le TERM
variable (si vous devez modifier TERM
, ce qui est très rare, assurez-vous de ne le faire que dans des circonstances très précises ; en particulier ne le changez pas si c'est screen
).