tmux에서 창으로 명령 보내기


7

tmux에서 마인 크래프트 서버를 실행하고 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

서버가 시작되지만 명령이 전송되지 않습니다. 내가 무엇을 잘못하고 있지?

답변:


3

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

클라이언트가 분리 된 직후 실행할 명령이없는 한 스크립트의 마지막 단계로 첨부 할 수 있습니다.

휴면이 진행되는 동안 (예 : Minecraft 서버가 시작되는 동안) 연결된 클라이언트를 통해 창을 보려면 bashsleeptmux send-keys백그라운드에서 실행되도록 할 수 있습니다 .

tmux new-session -d …
tmux new-window …
{
    sleep 10
    tmux send-keys …
} &
tmux attach-session …
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.