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 …