如果我使用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
答案 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?。