연결하지 않고 주어진 tmux 세션/창에 입력이나 명령을 보내는 데 사용할 수 있는 명령이 있습니까?
무인접속을 위한 것입니다.
tmux 세션에서 실행되는 콘솔 응용 프로그램이 있습니다. 배포(capistrano 사용)가 완료된 후 다시 시작하고 싶습니다.
가능합니까?
기본적으로 보내고 싶은 내용은 다음과 같습니다.
exit
cd ..
cd app
rails console
답변1
이 문제는 ServerFault에 대한 해결책이 있습니다.
send-keys
매뉴얼 페이지에 설명된 명령을 사용합니다 .
send-keys
다음은 이 명령의 사용을 보여주는 "Hello World" 예입니다 .
1단계. 분리된 세션을 생성합니다.
user@host:~$ tmux new -d -s mySession
2단계: 분리된 세션에서 명령을 실행합니다.
user@host:$ tmux send-keys -t mySession.0 "echo 'Hello World'" ENTER
3단계: 세션에 연결:
user@host:$ tmux a -t mySession
Tmux 터미널 창에 다음 텍스트가 표시되어야 합니다.
user@host:$ echo 'Hello World'
Hello World
user@host:$
이는 echo
tmux 세션 내에서 명령이 성공적으로 전송되고 실행되었음을 나타냅니다.
이 기술을 명령에 적용하면 다음과 같습니다.
user@host:~$ tmux send-keys -t mySession.0 exit ENTER
user@host:~$ tmux send-keys -t mySession.0 "cd .." ENTER
user@host:~$ tmux send-keys -t mySession.0 "cd app" ENTER
user@host:~$ tmux send-keys -t mySession.0 "rails console" ENTER