EC2에서 실행 중인 서버가 있고 새 버전의 애플리케이션을 배포해야 할 때마다 다음 스크립트를 실행합니다.
#Kills tmux and kills <my-app> process
pkill -f tmux
pkill ./my-app
#Removes old bot files and extracts new ones
rm -rf myapp/*
unzip publish.zip -d myapp
#Grants permissions to the botfile
chmod 750 myapp/*
chown root:ubuntu myapp/*
#Starts bot and creates a new tmux session
pkill -USR1 tmux
tmux new_session -d -s session-name './myapp/my-app'
tmux
터미널에서 직접 호출하면 새 세션을 시작하고 애플리케이션을 실행하는 마지막 줄이 제대로 작동하지만 스크립트 내에서 실행하면 다음 오류가 발생합니다.
error connecting to /tmp/tmux-1001/default (No such file or directory)
pkill -USR1 tmux
다른 스택 교환 게시물을 읽으면서 문제가 해결되지는 않았지만 신호 tmux에 추가하는 것이 제안되었습니다 . 이 문제를 어떻게 해결할 수 있나요?
답변1
나타나는 오류 메시지:
error connecting to /tmp/tmux-1000/default (No such file or directory)
연결할 tmux 세션이 없으므로 스크립트가 tmux 세션을 생성하지 않는 것 같습니다. 내가 당신의 명령을 실행할 때
tmux new_session -d -s session-name './myapp/my-app'
다음 오류가 발생합니다.
unknown command: new_session
하지만 다음을 실행하세요.
tmux new -d -s TestSession -c myapp/my-app
예상대로 작동합니다. 이 위치는 다음과 같습니다: Linux #142 - Ubuntu SMP 2022년 8월 26일 금요일 12:12:57 UTC 2022 달리기: 멀티플렉서 3.0a
답변2
세션을 분리하지 않고 삭제하면 오타 -d
도 있습니다 .new_session
new-session
마지막 줄을 다음으로 바꾸십시오.
tmux new-session -s myapp './my-app/MyApp'
새 세션을 만든 myapp
다음 해당 세션을 사용하여 액세스할 수 있습니다.
tmux a -t myapp