获取Scala.sys.process.Process的进程ID

时间:2014-04-24 21:10:18

标签: scala

如果我使用Scala Process / ProcessBuilder启动了一个进程。我怎样才能获得创建过程的pid?

我在官方文档中找不到任何关于pid的提及: http://www.scala-lang.org/api/2.10.4/index.html#scala.sys.process.Process http://www.scala-lang.org/api/2.10.4/index.html#scala.sys.process.ProcessBuilder http://www.scala-lang.org/api/2.10.4/index.html#scala.sys.process.package

2 个答案:

答案 0 :(得分:5)

2016:同样的问题;我一直在点击相关问题几分钟,但仍然找不到任何一致同意的解决方案。这是一个Scala版本,灵感来自LRBH10的Java代码,由wingedsubmariner链接:

java

警告:scala代码运行器基本上只是一个bash脚本,所以当你使用它来启动scala程序时,它会在实际启动java进程之前完成数千件事。因此,您实际感兴趣的scala - 进程的PID将远大于上面的代码片段返回的值。因此,如果您使用java启动流程,则此方法基本上无用。直接使用this.loader.load('./src/test.module').then((factory: NgModuleFactory<any>) => { console.log(factory); }); ,并将Scala库显式添加到类路径中。

答案 1 :(得分:3)

scala.sys.io.process类是用于启动进程的Java类的包装器,遗憾的是,很难从此API获取PID。请参阅stackoverlow问题,How to get PID of process I've just started within java program?

相关问题