"screen -D -R"에 해당하는 tmux가 있습니까


13

퍼티에서 기본 명령으로 명령을 내릴 수 있도록 tmux동작 하는 방법이 있는지 알고 싶습니다 screen -D -R.

screen스위치는 사용자의 기존 화면 세션을 강제로 분리하고 (아직 활성 상태이고 다른 곳에 로그인 한 경우에도) 현재 세션에 다시 연결합니다. 또한 스크린 세션이 존재하지 않으면 새로운 세션이 생성됩니다.

나는 tmux를 좋아하고 화면에 비해 명확한 이점을 볼 수 있지만이 기능이 있으면 실제로 거래를 마무리 할 수 ​​있습니다.

tmux attach 새 세션이 없으면 새 세션을 만들지 않는 것 같습니다.

tmux의 매뉴얼 페이지는 다음과 같이 말합니다.

서버가 시작되지 않으면 attach-session (attach)이 서버를 시작하려고 시도합니다. 구성 파일에서 세션을 만들지 않으면 실패합니다.

굵게 표시된 부분은 무엇을 의미합니까? (conf 파일에서 세션을 만드는 예를 찾을 수 없습니다).


매뉴얼 페이지에서 : " 구성 파일은 tmux서버가 처음 시작될 때 순서대로 실행되는 일련 의 명령입니다. "-실제로 attach또는 new-session줄에있을 수 있습니다 .tmux.conf.
sr_

@sr_ 글쎄, 서버가 처음 시작되었을 때 new-session어쨌든 일어 났을 것이다 ...
Chris Down

SO 에서이 (닫힌) 질문을 찾았습니다. 비슷한 답변을 가진 같은 질문. stackoverflow.com/q/3432536/168034
phunehehe

답변:


15

예:

$ tmux attach -d || tmux new

-dscreen -D다른 사람을 분리 하는 것처럼 행동해야합니다 .

ssh로 연결 한 다음 첨부 또는 작성은 다음과 같습니다.

$ cat bin/stmux
#!/bin/sh
exec ssh -t $@ 'tmux attach -d || tmux new'

$ stmux my.remote.box

1
예-이것은 내가 요청한 것을 달성하는 가장 효과적인 방법 인 것 같습니다. 마찬가지로 new-sessiontmux 세션 중에 파일을 편집하고 다시로드하려는 경우 구성 파일에서 승인을 거부 합니다.
Geeb

4

tmux attach세션이 없을 때 새 세션 을 만들 려면 new-sessiontmux 구성 파일 의 옵션 을 사용 하십시오. 파일 ~/.tmux.conf이 존재하지 않으면 작성 하고 추가하십시오.

new-session

그것에. 또한, 나는 별명 tmuxtmux attach:)


1
나는이하지 않으려 new-session에서 ~/.tmux.conf내가 명령을 사용하여 구성을 다시로드하는 경우 때문에 source-file ~/.tmux.conf(참조 ) 새로운 세션이 시작됩니다. 예, 나는 그것을 죽일 수 있고 이전에 붙일 수는 있지만 약간 성가시다.
mmoya

3

쉘 기능으로 이것을 에뮬레이션 할 수 있습니다. 이것은 POSIX 호환 쉘에서 작동합니다.

tmux() {
    if [ "$#" -ge 1 ] && [ "$1" = -z ]; then
        shift
        command tmux detach 2>/dev/null
        command tmux attach "$@" || command tmux new-session "$@"
    else
        command tmux "$@"
    fi
}

이제로 시작하면 tmux -z원하는 작업을 수행해야합니다.


2

이것은 나를 위해 조금 더 잘 작동합니다.

tmux new-session -AD -s <session-name>

1

.bashrc에서 이것이 가장 효과적이라는 것을 알았습니다.

if [[ -z $TMUX ]]; then
  tmux attach-session || tmux new-session
fi

이것이 OP의 굵은 부분을 어떻게 설명합니까?
Anthon

0

당신이 가진 .shrc 파일 내부 또는 이와 유사한이 사용하는 경우 exec내가 권하고 싶습니다

if tmux ls
  exec tmux attach
else
  exec tmux
fi
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.