【问题标题】:Kill a process started with Groovy execute()杀死一个使用 Groovy execute() 启动的进程
【发布时间】:2009-01-23 17:11:00
【问题描述】:

我可以使用 Groovy 运行 Groovy 脚本

proc = "cmd /c groovy BillingServer.groovy".execute(null, new File("C:\"))

但是,我找不到终止/终止进程的方法。 waitForOrKill(1)destroy() “行动”就像他们已经工作一样,但外部进程继续运行。调用 exitValue() 失败并显示

java.lang.IllegalThreadStateException: 进程没有退出

如何终止我已启动的进程?

【问题讨论】:

  • 需要考虑的事情 - 为什么不加载脚本并直接在 groovy 中执行它而不是生成外部 groovy env?
  • 我需要能够通过 Swing GUI 按需启动和停止各种 Web 服务。我发现当它们正在运行时我无法关闭它们并重新启动它们。我的解决方法是将它们作为我可以单独控制的单独进程运行。如果您有解决方案,我很乐意看到。

标签: groovy process


【解决方案1】:

我通过从要执行的字符串中删除cmd /c 解决了这个问题。似乎 cmd 正在产生 groovy,所以waitForOrKill() 正在杀死 cmd 进程,但 groovy 进程仍在运行。如果没有cmd /c,我会生成一个 groovy 进程,而waitForOrKill() 会成功杀死它。

【讨论】:

    猜你喜欢
    • 2021-12-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-21
    • 1970-01-01
    • 2012-10-23
    相关资源
    最近更新 更多