我正在尝试使用php在后台运行java程序。我能够运行该程序,但在java程序完成执行之前页面不会加载。
我可以使用php在后台运行shell脚本。但是,如果我为java提供相同的命令,它不会在后台运行。
$command = "java hello";
$outputfile = "out1";
$pidfile = "out2";
exec(sprintf("%s > %s 2>&1 & echo $! >> %s", $command, $outputfile, $pidfile));
我如何在后台运行该程序?
答案 0 :(得分:2)
我得到了以下内容:
shell_exec('java app.jar > /dev/null &');
exit();
具体来说,我试图通过TeamCity构建步骤中的脚本启动几个单独的进程。
答案 1 :(得分:0)
在exec的php文档中,它说:
如果使用此功能启动程序,为了使其在后台继续运行,必须将程序的输出重定向到文件或其他输出流。如果不这样做将导致PHP挂起,直到程序执行结束。
所以你需要将javafile的输出更改为另一个终端,而不是php或文件可能更改为/ dev / null