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が接続されていると思うようにシェルを偽にしたり、接続されたスイッチstty
で実行されているスクリプトstty
や他のものと交換したりできますか?
実行中のMinecraftプロセスとのコマンドライン対話のためにボックスでSSHを有効にする最善の方法を誤って考えていますか? tmuxを使用するのは悪いアプローチですか?