【问题标题】:Kill process group杀死进程组
【发布时间】:2015-02-13 10:42:57
【问题描述】:

当我启动时

io.Process.start(
    '~/google_cloud_datastore_dev_server/gcd-v1beta2-rev1-2.1.1/gcd.sh')
.then((process) {
  new Future.delayed(new Duration(seconds: 10), () => process.kill());
});

有了Process.start,我得到了两个新进程(gcd.sh 脚本和一个从gcd.sh 启动的Java 应用程序)。 process.kill() 只会杀死 gcs.sh,但 Java 进程会继续运行。

process.kill();之前

pstree 24010
gcd.sh───java─┬─java───22*[{java}]
              └─20*[{java}]

process.kill();之后

java─┬─java───21*[{java}]
     └─20*[{java}]

有没有办法从 Dart 中杀死一个进程及其所有子进程(整个进程组),而无需使用 ps 或类似的命令行工具?

通过启动进程的stdin处理命令输出有点麻烦,使用shell命令执行此任务时也难以跨平台工作。

似乎相关:http://dartbug.com/3637

【问题讨论】:

    标签: dart dart-io


    【解决方案1】:

    目前不支持杀死 dart:io 中的进程组。我已经打开http://dartbug.com/22470 来跟踪这个。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-12-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-31
      • 2017-05-27
      相关资源
      最近更新 更多