gpt4 book ai didi

Java 程序的运行方式与 shell 以及 PHP 中的 exec() 不同

转载 作者:行者123 更新时间:2023-12-02 07:24:47 24 4
gpt4 key购买 nike

我正在 Web 服务器上运行 Java 程序并向其传递来自 PHP 变量的参数,但我遇到了一些令人困惑的问题。我正在使用的 Java 程序当我从 shell 运行它和使用 PHP 从 shell_exec() 运行它时似乎表现出不同的行为。

如果我使用像 Putty 这样的工具从命令行执行程序,如下所示:

ksh runexample.ksh ClassName methodName

它运行正常,这意味着程序发送请求,并在大约 20 秒后从它连接的网关服务器收到响应。然后,我可以通过在外部数据库中查看结果记录来了解通信是否成功。

现在,当我使用 PHP 脚本执行该程序时,问题就出现了。

shell_exec('path/ssh user@xxx.xx.xxxx.xx.x "cd /path/path/examples/ ksh runexample.ksh ClassName methodName;')

如果我加载这个 PHP 脚本,并使用 var_dump() 输出,程序似乎会加载;但它给了我来自 Java 程序的简短通用消息,例如“程序在连接模式下运行等”,并且不输出通常的响应。 PHP 脚本几乎立即使用此输出加载页面。此外,外部数据库中不会创建任何记录。

我在脚本中设置了 set_time_limit(0),但是这个问题是否是由于 shell_exec() 在 Java 程序中的请求/响应完成之前超时所致?

感谢您的任何见解/类似经验,我感谢您的帮助!

最佳答案

这可能是因为按照您的方式运行应用程序时没有加载(或另一个).profile 文件。

我做了一些与你在这里所做的非常相似的事情,最终得到了 posting this question here ,作为this question的后续这两者现在可能对您都有用。

关于Java 程序的运行方式与 shell 以及 PHP 中的 exec() 不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13687705/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com