在后台执行java程序,同时使用php加载页面

在后台执行java程序,同时使用php加载页面,java,php,Java,Php,我正在尝试使用php在后台运行java程序。我可以运行该程序,但在java程序完成执行之前,页面不会加载 我能够在后台使用php运行shell脚本。但是如果我为java发出相同的命令,它不会在后台运行 $command = "java hello"; $outputfile = "out1"; $pidfile = "out2"; exec(sprintf("%s > %s 2>&1 & echo $! >> %s", $command, $outputf

我正在尝试使用php在后台运行java程序。我可以运行该程序,但在java程序完成执行之前,页面不会加载

我能够在后台使用php运行shell脚本。但是如果我为java发出相同的命令,它不会在后台运行

$command = "java hello";
$outputfile = "out1";
$pidfile = "out2";
exec(sprintf("%s > %s 2>&1 & echo $! >> %s", $command, $outputfile, $pidfile));

如何在后台运行程序?

在php文档for exec中,它说:

如果使用此函数启动程序,为了使其在后台继续运行,程序的输出必须重定向到文件或其他输出流。否则将导致PHP挂起,直到程序执行结束


因此,您需要将javafile的输出更改为另一个终端,而不是php,或者更改为一个文件,可能是/dev/null

shell_exec('java app.jar > /dev/null &');
exit();

具体地说,我试图通过TeamCity构建步骤中的脚本启动两个单独的进程。

我也有同样的问题,它不适用于“java hello>/dev/null”。但它可以与任何其他命令一起工作。