我正在为我的服务器进行管理,我想让它远程运行,但我发现了一个问题。当我启动minecraft服务器时,该文件的进程仍然有效,我的页面将被冻结,直到该进程被终止。
我找到了许多答案,但不幸的是,我在Windows上运行它。
有可能吗?我知道我可以启动启动服务器的.bat服务器,但我想说清楚。
我的代码:
chdir("D:/xampp/htdocs/hosting/servers/" . $id);
//$WshShell = new COM("WScript.Shell");
//$oExec = $WshShell->Run("ava -Xmx1g -jar minecraft_server.jar", 0, false);
//idk how WshShell works, but it didn't worked..
exec("java -Xmx1g -jar minecraft_server.jar");
提前感谢您的回复!
修改
嗯,有一个问题。我曾试图用WinShell开始其他事情但没有任何事情发生。当我想从WinShell开始时,什么都没发生,所以我必须启用一些东西来启用WinShell,或者有人知道为什么我的WinShell什么都不运行?
代码
chdir("D:/xampp/htdocs/hosting/servers/" . $id);
$WshShell = new COM("WScript.Shell");
$oExec = $WshShell->Run("java -Xmx1g -jar minecraft_server.jar", 0, false);
答案 0 :(得分:0)
听起来你想要触发Minecraft服务器作为后台进程。虽然我还没有能够尝试下面的解决方案,但这个帖子听起来像是在试图解决类似的问题:
PHP exec() as Background Process (Windows Wampserver Environment)
答案 1 :(得分:0)
好的,我有解决方案。 即使是Wscript.Shell也不行,这个命令正在运行。
$cmd = "java -jar D:/xampp/htdocs/hosting/servers/" . $id . "/minecraft_server.jar";
pclose(popen("CMD /C start /B " . $cmd, "r"));
感谢您的帮助!