bash 스크립트는 tmux 세션에서 다른 스크립트를 시작합니다.

bash 스크립트는 tmux 세션에서 다른 스크립트를 시작합니다.

실행하는 동안 일부 정보를 계속 출력하는 bash 스크립트가 있습니다. 나는해야한다

  1. 시스템이 시작되면 자동으로 실행됩니다.
  2. SSH를 사용하여 이 출력을 모니터링하고 간격을 두고 원격으로 제어합니다.

이를 위해 tmux를 사용하고 싶습니다. 그렇다면 이 문제를 어떻게 처리해야 할까요? 단순화를 위해 내 쉘 스크립트가 다음과 같다고 가정해 보겠습니다.

파일 이름: start.bash

#!/bin/bash
# just an example for simplicity    
watch date

tmux에서 실행하고 필요할 경우 나중에 연결할 수 있으려면 또 다른 스크립트가 필요합니다. 이름을 사용하여 새 tmux 세션을 생성하고 다른 쉘 스크립트를 실행해야 하는 부분에 문제가 있습니다. 이 작업을 완료한 후에는 이를 다른 쉘 스크립트에 넣고 나머지를 처리할 수 있습니다. 나는 그것이 쉽다고 생각한다. 누군가 이 특정 단계에 대한 예를 들어줄 수 있나요?

답변1

여러 가지 방법으로 이 작업을 수행할 수 있습니다.

send 키를 사용하여 세션을 생성한 후 이 작업을 수행할 수 있습니다.

tmux new -s "remote" -d
tmux send-keys -t "remote" "start.bash" C-m
tmux attach -t "remote" -d

또는 쉘을 통해:

tmux new -s "remote" -d "/bin/bash"
tmux run-shell -t "remote:0" "start.bash"
tmux attach -t "remote" -d

답변2

서버에서 tmux 세션을 시작하고 닫지 마세요. 서버에서 계속 실행됩니다. 클라이언트 컴퓨터에서 SSH로 접속하여 실행할 수 있습니다.

tmux attach

tmux 세션에서 실행 중인 모든 항목에 다시 연결하세요. 서버를 다시 시작하는 경우 부팅 시 시작하려면 /etc/rc.local에서 실행되는 쉘 스크립트에서 tmux를 시작하세요.

관련 정보