J'ai ouvert une session tmux sur ma machine locale et ssh sur la machine distante. Après cela, j’ai tapé la commande "tmux attach" sur la machine distante, puis j’ai eu une session tmux distante sur ma session tmux locale.
Maintenant, je veux détacher la session distante tmux, j'ai essayé
C-b d
mais il a détaché ma session tmux locale plutôt que la session distante.
Comment puis-je détacher le serveur distant tmux?
C-b C-b d
(en supposant des liaisons par défaut)
Le premier C-b est interprété par votre tmux local (car il est le premier à afficher toutes vos frappes au clavier). Le second C-b est une commande qui force votre tmux local à envoyer un C-b à son volet actif; ceci généré C-b arrive à la télécommande tmux. Le d passe par le tmux local inchangé; quand il arrive à tmux distant, il déclenche la commande detach
.
send-prefix
. detach-client
; il détache le client actif.C'est la même chose que lorsque vous devez envoyer un C-b à tout programme exécuté dans une session tmux. Si vous vouliez envoyer Cb à votre Shell normal (par exemple, parce que votre Shell utilise l'édition de style Emacs où Cb est backward-char
(et que vous n'aimez pas utiliser les touches de direction), vous devrez utiliser Cb Cb pour obtenir un seul Cb au shell.
Une autre façon de le faire sans se soucier des liaisons de clé pour accéder à la bonne instance de tmux consiste à taper tmux detach
dans la session tmux distante.
J'ai essayé la première réponse sans succès.
J'ai pu obtenir les résultats souhaités en procédant comme suit:
tmux attach
Je suis entré dans tmux et j'ai vu que l'autre session était toujours attachée
J'ai donc détaché ma session en cours pour revenir à un shell: Ctrl + b; d
Ensuite, j'ai émis ce qui suit: tmux attach -d
Cela signifie d'attacher à la session par défaut et de détacher toutes les autres sessions actuellement attachées. Voir la page de manuel sous Clients et sessions
attach-session [-dr] [-t session-cible] (alias: attach) S'il est exécuté hors de tmux, créez un nouveau client dans le terminal actuel et associez-le à la session-cible. S'il est utilisé de l'intérieur, changez le client actuel. Si -d est spécifié, tous les autres clients attachés à la session sont détachés. -r signifie que le client est en lecture seule (seules les clés liées à la commande detach-client ont un effet)
Si vous souhaitez essayer une autre option, suivez les étapes ci-dessous.
Ctrl+b d
. Pour que vous passiez maintenant à l'invite de la ligne de commande normale du terminal.tmux ls
. Rechercher la session actuellement attachéetmux detach-client -s <attached_session_name>