tmux
실제로 사용 중인 터미널을 제외하고 실행 중인 세션에서 모든 터미널을 분리하는 방법이 있습니까 ?
이것은 다소 이상하게 보일 수 있지만, 이것의 요점은 최종 사용자 원격 세션에 대해 일부 "지속성" 계층을 유지하면서 사용자가 "하나의 셸"에서만 시스템을 사용하도록 보장하는 것입니다.
설명대로여기, 사용자 이름을 기반으로 세션을 만드는 것은 쉽습니다.
if [[ "$TMUX" == "" ]] &&
[[ "$SSH_CONNECTION" != "" ]]; then
# Attempt to discover a detached session and attach
# it, else create a new session
WHOAMI=$(whoami)
if tmux has-session -t $WHOAMI 2>/dev/null; then
tmux -2 attach-session -t $WHOAMI
else
tmux -2 new-session -s $WHOAMI
fi
fi
하지만 마지막으로 연결된 터미널이 사용자 tmux
세션에 계속 연결되어 있는 유일한 터미널인지도 확인하고 싶습니다.
이를 달성할 수 있는 방법이 있나요? 또한 screen
(또는 다른 멀티플렉서) 기반 솔루션 도 허용합니다 .)
답변1
귀하의 질문을 올바르게 이해했다면 원하는 대로 수행할 수 있는 -d
옵션이 있습니다.attach-session
tmux -2 attach-session -d -t $WHOAMI
그러면 지정된 대상 세션에 연결되고 다른 모든 클라이언트가 분리됩니다.
세션을 연결한 후 및 옵션을 사용하여 유사한 작업을 수행할 수 있습니다 detach-client
. 즉, 명명된 클라이언트를 사용하고 지정된 클라이언트를 제외한 모든 클라이언트를 분리하려면 추가하세요.-a
-t
-t
-a
screen
-d
동일한 작업을 수행하는 옵션 도 있습니다 .