【问题标题】:How to manage Process and ProcessBuilder objects from Java WebApplication如何从 Java Web 应用程序管理 Process 和 ProcessBuilder 对象
【发布时间】:2016-11-03 13:40:12
【问题描述】:

从我的 java web 应用程序中,我正在创建进程对象,并在传递命令后启动进程。 随着进程的启动,我正在维护另一个线程,它正在查看当前进程的退出值。

process.exitValue() 是否会导致当前线程等待?

更新问题: 请您提供一些关于为什么 process.destroy() 能够杀死 gcc(for c and c++) ,java 进程的信息,但是当进入以单声道运行的 c# 程序时,这些进程不能被破坏,为什么?

我可以在 ubuntu 服务器中运行 Process 对象时从它获取 pid 值以通过 pid 杀死进程吗?

【问题讨论】:

  • 它的文档是怎么说的?
  • 返回子进程的退出值。返回: 此 Process 对象表示的子流程的退出值。按照惯例,值 0 表示正常终止。抛出: IllegalThreadStateException - 如果此 Process 对象表示的子进程尚未终止但未提及有关等待的任何内容。你可以看到它提到的 waitFor() 。 @Kayaman
  • 当然没有提到等待。如果进程没有终止,它会抛出异常,因此不会发生等待,但会抛出大量异常。

标签: java spring process


【解决方案1】:

要等待创建进程结束,您可以使用Process.waitFor() exitValue 不等待进程终止。此外,如果进程仍在进行中,它会抛出异常。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-09-17
    • 1970-01-01
    • 2020-04-01
    • 1970-01-01
    • 2017-11-19
    • 2023-03-12
    • 1970-01-01
    相关资源
    最近更新 更多