tmux가 SSH에 접속할 때까지 기다리도록하여 나머지 Tmuxinator 스크립트를 완료하십시오.


13

최근에 tmux와 Tmuxinator를 발견 한 후 사용할 개발 환경을 설정하려고 노력했습니다.

프로토콜에 따라 비밀번호 / 암호를 스크립트에 저장할 수 없습니다. 그래서 내가 찾고있는 것은 tmux가 SSH 터널이 설정 될 때까지 기다리는 것입니다 (암호 입력, 입력, 로그인 및 로그인).

tmux 1.8+에는 "wait-for"명령이 있다는 것을 알고 있습니다. 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 user@example.com' C-m

여기 제가 가진 것의 매우 간단한 버전이 있습니다.

생각? 세션을 동기화 할 수 있다는 것을 알고 있습니다.이 문제를 여전히 해결하고 있습니다.

편집 : 명령을 살펴보고 창에서 변수를 동기화 된 창에서 명령으로 가져옵니다. TMUX가 사용자 입력을 요구하는 방법을 알아낼 수있을 때까지 이것은 "더 나은"방법 일 수 있습니다.

기능 요청을 발행 할 수 있습니다.


2
비밀번호없이 연결하고 공개 / 개인 키를 사용하지 않는 이유는 무엇입니까?
YoMismo

나는 그런 식으로 연결할 수 없다는 말을 들었다. 기술적으로 는 가능 하지만 정책은 적용 할 수 없습니다. 나는 또한 그 변화를 만들 수있는 목소리 / 권위가 없습니다 (빠르게?). 제 경우에는 저항이 가장 적은 도로를 살펴보면 약속이있는 것 같습니다.
Tango Bravo

1
원격 상자에 tmux가 설치되어 있지 않다고 생각합니까? 그렇지 않으면 원격 상자에 넣고 tmux 시작 하는 것이 훨씬 좋습니다 . // 또한, 나는 당신이 당신의 사용을 만드는 것이 좋을 것 ~/.ssh/config파일을 넣어 Host foo, User user그리고 Hostname example.comconfig 파일에서 세 개의 연속 라인. 그런 ssh foo다음와 같습니다 ssh user@example.com. // 아마도 이와 같은 것도 도움이 될 것입니다.command-prompt -p 'log in as:' -I 'user@example.com' 'split-window -v -d %1; split-window -v -d %1'
damien

답변:


3

일부 노트 wait-for

따라서 대기의 기본 사용법은 스레드 동시성 기본 과 유사하다고 생각하면 너무 복잡하지 않습니다.

실제로 다른 tmux 기능에 연결되지 않고 편리한 IPC 구현입니다.

wait-for event_name대기처럼 일정하면 wait-for -S event_name 시그널링 수단이다 이벤트

-U-L옵션 종류 직교하고처럼 행동 세마포어

질문을 직접 해결

wait-for명령이 동기식 인 경우에만 이러한 종류의 경쟁 조건을 해결할 수 있습니다 .

tmux send-keys 'sync-command ; tmux wait-for -S command-finished' C-m
tmux wait-for command-finished

여기에있는 문제는 ssh 명령이 동 기적이지 않다는 것입니다. 완료되면 알 수 없습니다.

매뉴얼 을 살펴보면 LocalCommand원하는 것을 수행 하는 지시문을 찾을 수 있습니다 . 연결이 끝난 후 로컬로 명령을 실행하여 호출 할 수 있습니다

ssh root@iris.tatw.name -o 'PermitLocalCommand yes' -o 'LocalCommand  tmux wait-for -S done'

"다른 기능에 연결되어 있지 않다"는 channel것은 그 이름이 자체 네임 스페이스에있는 이름이고 tmux의 사전 정의 된 "이벤트"와 관련이 없음을 의미합니까?
ormaaj

wait-for -S메시지 전달을 보장하지 않고 sync-command이전 에 완료된 경우 여전히 레이스 문제가있을 수 있습니다 wait-for.
ormaaj
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.