실행하는 동안 일부 정보를 계속 출력하는 bash 스크립트가 있습니다. 나는해야한다
- 시스템이 시작되면 자동으로 실행됩니다.
- 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를 시작하세요.