我正在尝试使用php在后台运行一个java程序。我可以运行程序,但页面直到java程序执行完成后才加载。
我可以使用php在后台运行shell脚本。但是如果我对java发出同样的命令,它就不会在后台运行。
$command = "java hello";
$outputfile = "out1";
$pidfile = "out2";
exec(sprintf("%s > %s 2>&1 & echo $! >> %s", $command, $outputfile, $pidfile));我如何在后台运行这个程序?
发布于 2011-10-20 04:32:28
我将此代码与以下代码配合使用:
shell_exec('java app.jar > /dev/null &');
exit();具体地说,我试图通过TeamCity构建步骤中的脚本启动两个独立的进程。
发布于 2010-10-30 11:34:22
在exec的php文档中,它说:
如果使用此函数启动程序,为了使其继续在后台运行,则必须将程序的输出重定向到文件或另一个输出流。否则将导致PHP挂起,直到程序执行结束。
因此,您需要将javafile的输出更改为另一个终端,而不是php,或者更改为一个可能为/dev/null的文件
https://stackoverflow.com/questions/4057121
复制相似问题