tmux의 창에 명령 보내기

tmux의 창에 명령 보내기

tmux에서 Minecraft 서버를 실행하고 bash 스크립트에서 서버 창으로 명령을 보내고 싶습니다.

아래는 내 스크립트입니다.

#!/bin/bash
echo "Starting vanilla server..."
sleep 2
# Start a new session with name MC
tmux new-session -d -s MC

# Start minecraft in a new window named UHC
tmux new-window -t MC:1 -n 'UHC' 'java -Xms512M -Xmx1G -jar Minecraft.jar nogui'

# And attach to it
tmux a

# Wait 10 seconds
sleep 10

# Run a command
tmux send-keys -t MC:1 'worldborder get' Enter

서버가 시작되었지만 명령이 전송되지 않았습니다. 내가 뭘 잘못했나요?

답변1

멀티플렉서클라이언트가 분리될 때까지(또는 해당 세션이 사라질 때까지) 명령 attach-session은 종료되지 않습니다. 스크립트는 효과적으로 일시 중지되어 tmux a명령이 완료될 때까지 기다립니다.

클라이언트가 분리된 후 즉시 일부 명령을 실행하려는 경우를 제외하고 연결을 스크립트의 마지막 단계로 예약할 수 있습니다.

잠자기 중에 연결된 클라이언트를 통해 창을 보려면(예: Minecraft 서버 시작 보기) 다음을 수행하세요.세게 때리다백그라운드에서 실행 sleep하고 다음을 수행합니다.tmux send-keys

tmux new-session -d …
tmux new-window …
{
    sleep 10
    tmux send-keys …
} &
tmux attach-session …

관련 정보