わかりました iv は、1 台のコンピューターでホストされている多数のゲーム サーバーを維持するのに役立つツールでいっぱいの作業に取り組んできました。私がやっていることは、python スクリプトから .bat ファイルを起動することです。そのbatファイルは、最大メモリなどのサーバーのプラムやその性質のものを設定します。次の関数で .bat ファイルを開いて実行します。
def StartServer(path,file):
if file not in MK.keys():
l = Popen(file, cwd=path)
MK[file]=l
stdout, stderr = l.communicate()
else:
MK[file].terminate()
この関数は、2 つの方法のいずれかで呼び出されます。最初の方法は、プログラムを開始することです。
thread.start_new_thread( StartServer, (path,File, ) )
2番目にプログラムを終了します
StartServer(path,File)
StartServer は再エントリを確認し、指定されたプログラムを終了します...これは、次のようなバット ファイルのように、RAM をほとんど必要としないプログラムに最適です。
@echo Hello world.
@pause
ただし、次のような Java プログラムにより多くの RAM を割り当てようとすると、
@ECHO OFF
SET BINDIR=%~dp0
CD /D "%BINDIR%"
"%ProgramFiles%\Java\jre7\bin\java.exe" -Xmx4096M -Xms4096M -jar Minecraft_RKit.jar user:password
PAUSE
BAT ファイルから次のようなメモリ エラーが発生します。これはpython側ではなくbatファイルからのものです
Invalid mat heap size: -Xmx4096M
The specified size exceeds the maximum representable size.
Error: Could not create java virtual machine.
Error: A fatal exception has occurred. Program will exit.
Press any key to continue . . .
注: Python と Bat ファイルの両方を使用することを好みます。よろしくお願いします!