如何在java或clojure中等待进程结束

2024-03-01

当我未启动的进程结束时,如何通知我?它们是恢复其退出代码和/或输出的方法吗?执行监视的进程将以 root/管理员身份运行。


您可以通过调用列出所有当前进程并解析输出的 shell 命令来检查进程当前是否正在从 java 运行。在linux/unix/mac os下命令是ps,windows下是tasklist.

对于 ps 版本,您需要执行以下操作:

ProcessBuilder pb = new ProcessBuilder("ps", "-A");
Process p = pb.start();

BufferedReader in = new BufferedReader(new InputStreamReader(p.getInputStream()));
// Skip first (header) line: "  PID TTY          TIME CMD"
in.readLine();

// Extract process IDs from lines of output
// e.g. "  146 ?        00:03:45 pdflush"
List<String> runningProcessIds = new ArrayList<String>();
for (String line = in.readLine(); line != null; line = in.readLine()) {
    runningProcessIds.add(line.trim().split("\\s+")[0]);
}

我不知道有什么方法可以捕获退出代码或输出。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在java或clojure中等待进程结束 的相关文章

随机推荐

  • 如何使用配置和编程方式优雅地关闭 Spring Boot 应用程序?

    我想优雅地关闭我的 Spring Boot 应用程序 我想知道通过 application yaml 文件配置它和以编程方式配置它有什么区别 在我的应用程序 yaml 文件中 我已从参考中添加了此内容https www baeldung c
  • 用 NA 填充两个矩阵的缺失数据

    我有两个方阵 其中都有一些缺失的数据 我想在两个矩阵中用 NA 填充缺失的数据 数据如下 first matrix t1 matrix c 1 0 1 0 0 1 1 0 1 nrow 3 ncol 3 byrow TRUE rowname
  • 使用自定义键/值在 Mongoose/Handlebars 中创建 Schema 对象

    我想创建一个表单来输入 mongo mongoose 模式中对象的自定义键和值 最终在车把视图中看到 请参阅示例以更好地解释 任何帮助都会很棒 Mongoose Mongodb 架构 var docketSchema new Schema
  • 包含一个字符串且不包含另一字符串的行的正则表达式

    我有以下正则表达式可以方便地匹配包含以下内容的所有行console log or alert 在支持 PCRE 的编辑器中打开的任何 javascript 文件中都可以使用该函数 b console log alert b 但我遇到很多文件
  • XPath 错误。节点不能在创建它的文档以外的文档中使用

    我正在尝试使用 XPath 解析 xml 文档 该脚本在 chrome 上运行良好 但出现以下错误 WrongDocumentError 节点不能在除 它是在其中创建的 有问题的代码如下 function StringToXML oStri
  • 尝试了解 asm 中断,特别是 16h func 01H

    这是家庭作业 我不期望你解决我的问题 只需要一些理解 我必须在 dosbox 中使用 ASM 和 C 我的第一个问题是我不太明白如何使用 BIOS 中断 任何带有代码示例的好的教程都会非常感激 好吧 我知道有中断 每个中断都有自己的功能和参
  • 无法消除瞬态属性 getter 实现中的 PrimitiveValue 访问器的编译器警告

    我在我的应用程序中的一个模型上实现了如下所示的瞬态属性 它在模型设计中被声明为具有未定义类型的瞬态属性 property nonatomic readonly NSNumberFormatter currencyFmt 该访问器的当前 无警
  • 使用 GeoPandas 计算其他多边形内的多边形面积

    我有两个GeoSeries df1 gpd GeoSeries Polygon 0 0 2 0 2 2 0 2 Polygon 1 5 1 5 4 2 4 4 2 4 Polygon 1 3 5 3 3 5 1 2 5 Polygon 1
  • 如何读取lucene 5.5.5索引?

    哪个版本的Luke可以读取5 5 5 lucene的索引 我尝试过 Luke 4 10 5 2 5 5 7 2 但总是得到这个 Invalid directory at the location check console for more
  • 两个环绕角度的平均值[重复]

    这个问题在这里已经有答案了 可能的重复 如何计算一组循环数据的平均值 https stackoverflow com questions 491738 how do you calculate the average of a set of
  • Celery 无法在 AWS ECS 中工作

    我使用 docker 将 django 项目部署到 AWS ECS 服务 为了使用 celery 我将rabbitmq 设置为单独的 ec2 服务器 两个带有代理和结果后端的 ec2 问题是 celery Worker 在本地工作 但不在
  • 如何在不同线程中使用实体框架? [复制]

    这个问题在这里已经有答案了 我有一个实体框架dbContext以及对数据库进行一些操作的方法 如何正确地从多个线程调用它以避免死锁 连接错误等 我尝试了不同的方法 但也有很多例外 public void Foo Bar bar using
  • 什么是惰性分配?

    对象的延迟分配是什么意思以及它有什么用 延迟分配简单地意味着直到实际需要资源时才分配资源 这对于单例对象来说很常见 但严格来说 只要尽可能晚地分配资源 就有一个延迟分配的例子 通过延迟分配资源直到您真正需要它 您可以减少启动时间 如果您从未
  • 近似保序霍夫曼码

    我正在做算法和数据结构课程的作业 我无法理解给出的说明 我会尽力解释这个问题 我给出的输入是一个正整数n其次是n正整数 表示有序字符集中符号的频率 或权重 第一个目标是构造一棵树 为有序字符集中的每个字符提供近似的保序霍夫曼代码 我们要通过
  • Config.h - 没有这样的文件或目录

    文件 safe read c 包含lib config h 这个文件放在哪里 我在库中找到了许多具有此名称的文件 但我不知道哪个是正确的 UPDATE 我的文件有 include
  • 使用 dplyr 跨多行修改值的更有效方法

    在学习了 R 中数据转换的基础知识后 我现在正在数据集上进行练习 我确实有四个具有相同值的变量 我想将数值修改为字符串 我在这个网站上找到了函数 case when 并将其应用到每一列 但我真的很想做得更快 数据看起来像这样 climate
  • 有哪些可用于 gtk+ 开发的 IDE [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • MySQL 查询缓存:最大缓存大小限制为 128 MB?

    我的应用程序是数据库密集型的 因此我非常努力地确保应用程序和 MySQL 数据库尽可能高效地协同工作 目前 我正在调整 MySQL 查询缓存 使其符合服务器上运行的查询的特征 query cache size是可以存储在缓存中的最大数据量
  • openpyxl - 在现有合并单元格的 Excel 文件中添加新行

    Before https i stack imgur com 20JFY png After https i stack imgur com 9d7m6 png 所以 我试图在 Excel 表中添加 6 行 我用过 openpyxl wor
  • 如何在java或clojure中等待进程结束

    当我未启动的进程结束时 如何通知我 它们是恢复其退出代码和 或输出的方法吗 执行监视的进程将以 root 管理员身份运行 您可以通过调用列出所有当前进程并解析输出的 shell 命令来检查进程当前是否正在从 java 运行 在linux u