gpt4 book ai didi

PHP on Apache on Linux : when web app starts processes, 如果 Apache 重新启动,是否可以让这些进程保持事件状态?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:37:57 24 4
gpt4 key购买 nike

我们有一个网络应用程序,可以让我们监视和控制我们的服务器应用程序。网页通过执行 shell 脚本来启动应用程序。我们遇到的问题是,如果我们需要重新启动 apache,它会终止由网络应用程序启动的任何进程。

网页是 PHP,并使用 exec() 命令调用启动脚本。启动脚本启动 Java 应用程序,并使用如下内容运行应用程序:

nohup java ... &

如前所述,PHP 在 Linux 上的 Apache 中运行。是否有其他一些开关或方法来启动这些进程,而不是让它们成为 Apache 的子进程(并在它停止时被杀死)?

澄清

我对 Windows 比对 Linux 更熟悉。在 Windows 中,如果你想完成我们正在尝试的事情,请在 shell 中添加 start 关键字,即:

start <batchfile>

当您使用 start 时,新的 shell/进程可以与启动它的那个脱钩。是否有与 start 命令等效的 Linux?

最佳答案

用 PHP 启动持久进程听起来像是在自找麻烦。您会遇到像您这样的问题,并且会产生巨大的安全隐患。

更好的解决方案是让您的 PHP 页面将需要以批处理模式运行的内容保存到数据库表(MySQL 或 PostgreSQL)中。

另一个进程(可能在比 apache www 用户更高级的凭据下运行)应该作为守护进程运行并不断检查数据库是否有新的东西要做并执行必要的任务(它也可以每隔几分钟由 cron 触发)。

这样,您将一箭双雕。

关于PHP on Apache on Linux : when web app starts processes, 如果 Apache 重新启动,是否可以让这些进程保持事件状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13410584/

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