好的,让我再试一次。:-)
如果我尝试:
<?php
exec("java -Xms1024M -Xmx1024M -jar craftbukkit-1.4.2-R0.2.jar -o true");
?>
网页永远不会返回。我相信这是因为 CGI 正在等待该过程完成,当然它永远不会这样做,因为它是一个服务器。
我在本地尝试这个,如果我在终端中输入相同的命令,它会按预期运行,所以我知道命令行没有问题。
所以……问题是:
1) exec 会阻塞直到进程完成?2)如果不是,这里发生了什么,如果是,我该如何改变这种行为?
==================================================== ===========
所以这确实是一个通用问题,但我已经包含在特定环境中,这可能有助于解释我为什么要这样做。这一切都在 LINUX 上。
我想从 PHP 页面远程启动 Java 进程。诀窍当然是该进程将继续运行,并且我希望在该进程成功启动后完成 PHP 页面。
那么,首先我该怎么做?我已经尝试了很多我读过的东西,但无法让它们工作。
第二部分有点棘手。停止 minecraft 服务器的方式是在终端中键入“停止”。当然,您可以在那里输入其他命令来执行其他操作……它只是从标准输入读取。
如果我想停止它,或者向它发送其他命令,我需要从 PHP 脚本连接到标准输入并发送文本或其他内容。
当我启动 java 进程时,我是否将标准输入连接到一个文件,然后从未来的 PHP 脚本写入该文件?我不知道。
只要给我一些关于正确方法的指示,我就会尝试它们。我会让你知道他们是否有效,或者我是否有更详细的问题。
谢谢!