연결하지 않고 tmux 세션에 입력을 보낼 수 있습니까?

연결하지 않고 tmux 세션에 입력을 보낼 수 있습니까?

연결하지 않고 주어진 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:$

이는 echotmux 세션 내에서 명령이 성공적으로 전송되고 실행되었음을 나타냅니다.

이 기술을 명령에 적용하면 다음과 같습니다.

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

관련 정보