Amazon Linux를 실행하는 AWS EC2 인스턴스가 시작될 때 MineCraft 서버를 시작하려고 합니다.
편의상 저는 tmux
분리된 세션을 시작하여 ssh
상자에 들어가서 실행 중인 세션에 연결한 다음 다시 분리하고 서버를 종료하지 않고 터미널을 닫곤 했습니다. 다음 명령을 사용하여 시작 스크립트를 실행하기 위해 EC2 인스턴스 "UserData"를 사용하고 있습니다.
tmux new-session -d -s server ./start-server.sh
이제 이 명령을 대화형으로 실행할 수 있지만 서버가 tty를 연결하지 않고 비대화형으로 시작되면 Minecraft server.jar이 성공적으로 실행되지만 서버가 다음 후 로그에 중지를 푸시하기 때문에 일부 시작 코드가 tty 속성을 확인하는 것 같습니다. 오류:
java.io.IOError: java.io.IOException: Error executing 'stty -a': stty: standard input: Input/output error
at org.jline.terminal.impl.AbstractPosixTerminal.setAttributes(AbstractPosixTerminal.java:54)
...
Minecraft 서버의 맥락에서 이 오류를 검색할 때 의미 있는 도움말을 찾을 수 없었으며 서버를 시작하는 "올바른" 방법에 대해 더 많은 연구가 필요할 수 있지만 빠른 지름길을 원합니다.
stty -a
세션에 기술적으로 당시 TTY가 연결되어 있지 않더라도(나중에 tmux를 사용하여 세션에 연결할 때 TTY를 가질 수 있기 때문에) 오류 없이 실행되도록 하는 방법이 있습니까? tmux에 일부 스위치를 제공하거나, tty가 연결된 것으로 생각하도록 쉘(bash)을 가짜로 만들거나, stty
연결된 스위치로 실행되는 스크립트 stty
또는 다른 것으로 교체할 수 있습니까?
실행 중인 Minecraft 프로세스와의 명령줄 상호 작용을 위해 상자에 SSH를 활성화하는 가장 좋은 방법을 실수로 고려하고 있습니까? tmux를 사용하는 것이 나쁜 접근 방식입니까?