최근 tmux와 Tmuxinator를 발견하고 사용할 개발 환경을 구축하려고 노력하고 있습니다.
프로토콜에 따라 스크립트에 비밀번호/암호 문구를 저장할 수 없습니다. 그래서 내가 찾고 있는 것은 tmux가 SSH 터널이 설정될 때까지 기다리는 것입니다(비밀번호를 제공하고 Enter 키를 누른 후 로그인).
tmux 1.8+에는 "wait" 명령이 있다는 것을 알고 있습니다. 저는 Cygwin을 통해 1.9a를 실행하고 있습니다. 하지만 문서를 읽었음에도 불구하고 여전히 이해하는 데 어려움을 겪고 있습니다.
tmux new-session -s development -n editor -d
tmux split-window -v
tmux split-window -v
"Need to send to all panes.
tmux send-keys -t development 'ssh [email protected]' C-m
그래서 여기에 제가 가지고 있는 것의 아주 간단한 버전이 있습니다.
아이디어? 세션을 동기화할 수 있다는 것을 알고 있지만 여전히 문제를 해결하는 중입니다.
편집하다: 명령을 탐색하고 창의 변수를 동기화 창의 명령으로 가져옵니다. TMUX가 사용자 입력을 요청하도록 하는 방법을 알아내기 전까지는 이것이 "더 나은" 접근 방식일 수 있습니다.
기능 요청이 발행될 수 있습니다.
답변1
몇 가지 참고 사항wait-for
따라서 wait-for를 스레드와 유사하다고 생각하면 기본적인 사용법은 그리 복잡하지 않습니다.동시성 기본 요소
실제로는 다른 tmux 기능과 연결되어 있지 않으며 단지 IPC를 편리하게 구현하기 위한 것입니다.
wait-for event_name
기다리는 것처럼이벤트
wait-for -S event_name
신호를 보내는 수단이다.이벤트
-U
options 와 -L
다소 직교합니다 .신호
귀하의 질문에 직접 답변하십시오
wait-for
명령이 동기화된 경우에만 이러한 경합 상태를 해결할 수 있습니다.
tmux send-keys 'sync-command ; tmux wait-for -S command-finished' C-m
tmux wait-for command-finished
여기서 문제는 ssh 명령이 동기화되지 않는다는 것입니다. 언제 완료되었는지 알 수 있는 방법이 없습니다.
뒤집다수동우리가 원하는 것을 수행하는 것처럼 보이는 지침을 찾을 수 있습니다 LocalCommand
. 연결이 완료된 후 로컬로 명령을 실행하여 호출할 수 있습니다.
ssh [email protected] -o 'PermitLocalCommand yes' -o 'LocalCommand tmux wait-for -S done'