Ich möchte tmux
um ein neues Fenster zu erstellen, wenn ich von einer bestehenden tmux-Sitzung auf eine Maschine ssh. Ich möchte jedoch nicht, dass eine tmux-Sitzung auf dem neuen Rechner gestartet wird!
Ich habe Folgendes in meiner .bashrc
, sodass tmux
startet automatisch:
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
Ich habe auch ein ssh
Funktion:
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
}
Dies funktioniert in Ordnung, aber ich möchte nicht, dass eine tmux-Sitzung auf dem Computer gestartet wird, zu dem ich ssh, da dies mir 2 Sitzungen im selben Terminalfenster gibt. Gibt es irgendetwas, das ich in meine .bashrc
einfügen kann? damit tmux auf einer Maschine nicht startet, wenn der ssh-Befehl von einer tmux-Sitzung aus aufgerufen wurde?
Ich verwende PuTTY und tmux 1.5.
Akzeptierte Antwort:
In Anbetracht des von Ihnen geposteten Codes haben Sie $TERM
, wenn Sie ssh innerhalb von tmux ausführen =screen
, sodass Sie nicht versuchen, an ein tmux-Fenster anzuhängen. Mit anderen Worten, der Code, den Sie bereits haben, sollte wie gewünscht funktionieren. Da ist was faul. Stellen Sie sicher, dass Ihre Punktdateien den TERM
nicht durcheinander bringen Variable (wenn Sie TERM
ändern müssen , was sehr selten vorkommt, stellen Sie sicher, dass Sie dies nur unter ganz bestimmten Umständen tun; Ändern Sie es insbesondere nicht, wenn es sich um screen
handelt ).