server.jar
接続されたTCPソケットを使用してMinecraftを実行したいので、次のようにします。
socat EXEC:"java -jar server.jar nogui" TCP-LISTEN:25567,fork
問題なくサーバーに接続して接続を切断できますtelnet
。ただし、サーバーを停止すると(pass /stop
)、サーバーはシャットダウンしますが(チェックするとps auf
プロセスは確実に消えます)、socat
シャットダウンしません。
どうやって始めるの?ソカットでは、EXEC-childが終了した後に終了しますか? (EXEC:代わりにSYSTEM:を試してみましたが、これは試みです。)
答え1
fork オプションは socat に基本プロセスで引き続きリッスンし、子プロセスで接続を処理するように指示します。これにより、接続されている各クライアントに複数のMinecraftサーバーインスタンスを1つずつ同時に提供できます。これはまた、socatサーバーがすべての接続を失った後も引き続き新しい接続を受信し、接続されたクライアントにさらにMinecraftサーバーインスタンスを提供できることを意味します。
このフォークオプションを削除すると、1つの接続のみが許可され、1つのMinecraftサーバーが提供され、サーバーが停止すると終了します。