java - 如何从 proc_open 保存进程资源以便稍后检查状态?

标签 java php drupal shell ubuntu-server

我正在运行一个sh 脚本,它通过ubuntu服务器上的php运行java进程。我正在使用 proc_open 来运行该进程。通常工作流程如下:

  • 请求页面 ->
  • 脚本运行(直到完成)->
  • 结果页面。

在我的例子中,脚本是并行运行的,因此服务器不会等到脚本完成(有时需要几个小时,所以不能),所以我需要以某种方式保存该资源以便稍后跟踪它(进程的状态或只是停止它)。

资源类型是“进程”,我用的是这个函数get_resource_type为了得到它。

序列化在这种情况下不起作用 - 资源对此来说是一个异常(exception)(您可以在“参数”框中查看 http://il2.php.net/manual/en/function.serialize.php)。

我的目标是良好的流程处理。有人知道我如何使用资源或其他方式进行流程处理吗?

最佳答案

您无法存储资源类型以供以后在 PHP 中使用。您需要做的是实现某种形式的异步通信 - 也许是一个文件,其中一个写入状态信息,另一个读取,共享内存,命名管道,...

我会调查pcntl extension 。提示:出于安全原因,在 Web 服务器环境中不可能进行 fork 。

关于java - 如何从 proc_open 保存进程资源以便稍后检查状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/949437/

相关文章:

java - 合并 2 javax.json.JsonObject 的正确方法是什么?

java - 如何在oracle兼容模式和hibernate中使用hsqldb获取序列的下一个值

PHP filter_var() - FILTER_VALIDATE_URL

php - Drupal 8.5.1 升级错误 - 在哪里查找故障排除?

drupal - twig drupal 8 中的 switch 语句

java - 将 GET 和 POST 服务合并为一个?

java - 如何在两个不同的 Swing 窗口之间共享方法?

php - MySQL 到 Oracle 帮助

JavaScript 文本旋转

php - drupal如何连接数据库