我有两台电脑。在第一台计算机上,我运行了 apache,并运行了我所有的 Web 代码。在第二台计算机上,我使用检索脚本存储了大量数据(该脚本通常需要数小时才能运行)。我本质上是在创建一个 Web UI 来访问这些数据而没有任何时间延迟。
所以我打电话:
exec("bash initial.bash");
这是我的 Apache 文件夹中的驱动程序脚本。它调用另一台计算机上的脚本。调用:
ssh otherMachine temp.bash&
此脚本调用第二台计算机上的数据检索脚本。
如果我在终端中调用 initial.bash,一切都会顺利且成功,但如果我在我的 PHP 文件中调用它,那么我在 initial.bash 中的所有命令都会运行,除了ssh otherMachine temp.bash&
. 我把 & 放在最后,这样 temp.bash 将在后台运行,因为它确实需要几个小时才能完成。
我不确定为什么嵌套脚本在被 Apache 调用时没有运行。有没有比使用 exec 或 shell_exec 调用脚本更好的选择,最终调用另一个脚本。我不直接在第二台机器上调用脚本的原因是程序运行需要时间。Shell_exec 在脚本完成之前不会呈现 php 页面。