"入力/出力エラー"なしでsttyを実行するには、tmuxの分離された非対話型セッションを有効にします。

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を使用するのは悪いアプローチですか?

ベストアンサー1

おすすめ記事