계속하기 전에 SSH 연결이 설정되기를 기다리기 위해 대기 및 LocalCommand를 사용하는 tmux에 대한 답변이 있지만 tmux가 SSH 세션이 닫힐 때까지 기다리게 하는 방법이 필요합니다(원격 호스트에 키 보내기를 사용한 후). 여러 명령에서) 을 누른 다음 계속하세요.
LocalCommand는 이 작업을 수행하지 않습니다.
문제는 다음과 같습니다.
이후:
1. 새 tmux 세션 열기
2. send-keys를 사용하여 SSH 터널 설정
3. send-keys를 사용하여 원격 호스트에 여러 명령 보내기
4. send-keys를 사용하여 SSH 터널 닫기
다음 tmux send-keys 명령을 실행하기 전에 터미널이 입력을 받을 준비가 될 때까지 bash가 대기하는지 어떻게 확인할 수 있나요?
답변1
마침내 문제를 해결한 방법:
rm ~/sesh.lock 2> /dev/null # in case of previous failure
tmux new-session -d -s sesh
tmux send-keys -t sesh "ssh prod-srv-1" Enter
tmux send-keys -t sesh "cd /srv/www/api/bin" Enter
tmux send-keys -t sesh "echo api stop > ~/api_log.txt" Enter
tmux send-keys -t sesh exit Enter
while [ ! -e ~/sesh.lock ]
do
tmux send-keys -t sesh "touch ~/sesh.lock" Enter
sleep 0.1
done
tmux send-keys -t sesh "rm ~/sesh.lock 2> /dev/null" Enter
tmux kill-session -t sesh