杀死进程组
Kill process group
当我启动时
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
或类似的命令行工具?
通过已启动进程的标准输入来处理命令输出有点麻烦,而且在使用 shell 命令完成此任务时也很难跨平台工作。
目前 dart:io 中不支持终止进程组。我已经打开 http://dartbug.com/22470 来跟踪这个。
当我启动时
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
或类似的命令行工具?
通过已启动进程的标准输入来处理命令输出有点麻烦,而且在使用 shell 命令完成此任务时也很难跨平台工作。
目前 dart:io 中不支持终止进程组。我已经打开 http://dartbug.com/22470 来跟踪这个。