존재하지 않는 경우 새 TMUX 세션을 만드는 방법
tmux session
이름이 지정된 tmux 세션이 존재하는 경우 주어진 이름으로 새 세션을 작성하지 않으려면 첨부하는 방법을 알아 내려고합니다 .
현재, 나는 내가 tmux
찾고있는 것을 부분적으로 달성 할 수 있는 몇 가지 명령을 알고 있지만, 내가 찾고있는 것을 얻기 위해 함께 결합하는 방법은 명확하지 않습니다.
tmux attach
자동으로 기존 세션에 연결하지만 세션이 없으면 오류가 발생합니다tmux new
새 세션을 만들지 만 매번 그렇게하므로 세션에 그대로 둘 수 없습니다..tmux.conf
tmux has-session
세션이 존재하는지 테스트하지만 다른 명령과 함께 세션을 연결하는 방법을 모르겠습니다
따라서 tmux 스크립트를 작성하여 세션에 로그인해야 할 때마다 수동으로 스크립트를 작성하지 않고 자동으로 수행되도록하고 싶습니다.
새로운 tmux 세션을 만들거나 (지정된 세션 이름이 존재하지 않는 경우) 세션 이름 (존재하는 경우)에 연결하도록 자동 스크립트를 작성하려면 어떻게해야합니까?
또는 추가 할 수 있습니다
new-session
당신을에 .tmux.conf
- 즉, 서버 시작에 기본 세션을 생성합니다.
그런 다음 tmux attach
현재 세션 (서버 실행 중)에 연결하거나 새 세션을 작성 (서버 시작, 구성 파일 읽기, new-session
명령 실행)하여 연결합니다.
나는 그것을 알아 냈습니다 ( 그리고 그것을 지적했습니다 ).
tmux attach || tmux new
Petr Viktorin , jkoelker 및 pjincz의 의견에서 지적했듯이 다음 명령을 사용하여 mySession
존재 하는 경우 첨부 하고 존재하지 않는 경우 작성할 수 있습니다.
tmux new -A -s mySession
보낸 사람 man tmux
:
new-session
[-AdDEP] [-c
start-directory
] [-F
format
] [-n
window-name
] [-s
session-name
] [-t
group-name
] [-x
width
] [-y
height
] [
shell-command
]
(별칭 :
new
)name으로 새 세션을 만듭니다
session-name
.[...]
-A
플래그 만드는new-session
처럼 행동attach-session
하면session-name
이미 존재; 이 경우에는 다음-D
과 같이 동작-d
합니다attach-session
.
new-session
-A
tmux-1.8부터 지원 되었습니다 .
1 세션을 사용하기 위해서는 램프의 대답만으로 충분하지만이 스크립트를 사용하면 여러 세션을 설정할 수 있습니다.
SESSIONS="work play"
function has-session {
tmux has-session -t $1 2>/dev/null
}
function except
{
if [ "$?" -eq 1 ] ; then
$1
fi
}
# Configure your sessions here
function session-work
{
tmux new-session -d -s work
tmux neww -k -t work:1
}
function session-play
{
tmux new-session -d -s play
tmux neww -k -t play:1
}
#
#MAIN
for x in $SESSIONS
do
echo $x
has-session $x
except session-$x
done
노트:
-k --> new-window will not be created if already exists
-d --> start session or window, but don't attach to it yet
-s --> name the session
-t --> specify a target location in the form session:window.pane
시작할 때 프로젝트 기반 구성을 포함하도록 Alex의 제안을 적용하면서 다음을 사용하기 시작했습니다.
# ~/bin/tmux-myproject shell script
# The Project name is also used as a session name (usually shorter)
PROJECT_NAME="myproject"
PROJECT_DIR="~/myproject"
tmux has-session -t $PROJECT_NAME 2>/dev/null
if [ "$?" -eq 1 ] ; then
echo "No Session found. Creating and configuring."
pushd $PROJECT_DIR
tmux new-session -d -s $PROJECT_NAME
tmux source-file ~/bin/tmux-${PROJECT_NAME}.conf
popd
else
echo "Session found. Connecting."
fi
tmux attach-session -t $PROJECT_NAME
어디 tmux-myproject.conf
TMUX 명령뿐만 아니라 내 편집기를 시작으로, 내 창문과 창을 만들 수 내 시작 시리즈입니다.
필요한 경우 별명을 사용하여 새 세션을 작성하고 이미 존재하는 경우 기본 세션에 첨부하십시오.
alias tmuxre='tmux new-session -t default || tmux new-session -s default'
이것을 서버의 .login에 추가했습니다.
The reason I do it this way is because I don't want to attach to the same actual session, I want a new session which uses the same group of windows.
This is also similar to running screen -xRR
.
For those who want to do the same thing in fish
:
tmux attach -t mysesh; or tmux new -s mysesh
참고URL : https://stackoverflow.com/questions/3432536/how-to-create-new-tmux-session-if-none-exists
'IT story' 카테고리의 다른 글
HTML5 모드에서 AngularJS 애플리케이션을 URL 재 작성을 위해 IIS를 구성하려면 어떻게해야합니까? (0) | 2020.06.25 |
---|---|
신경망에서 학습, 검증 및 테스트 세트의 차이점은 무엇입니까? (0) | 2020.06.25 |
왜 작업을 사용 하는가 (0) | 2020.06.25 |
Java8 스트림의 요소를 기존 목록에 추가하는 방법 (0) | 2020.06.25 |
원격 자식 분기를 삭제할 때 "오류 : 규정되지 않은 대상으로 푸시 할 수 없습니다" (0) | 2020.06.25 |