我在nodejs中使用选项shell:true
创建了一个使用spawn创建的进程,因此该进程在一个真实的shell中启动。因此,当我尝试用streamingTask.kill()
杀死此过程时,它无效。没有选项shell:true
一切正常。
这是我的代码的外观:
var options = {shell:true};
streamingTask = spawn('gst-launch-1.0',args,options);
...
streamingTask.kill()
那么我现在该如何杀死这个过程呢?
答案 0 :(得分:3)
这不起作用,因为你要杀死shell进程本身,而不是shell(gst-launch-1.0
在你的情况下)生成的子进程。
在npm上有一个名为tree-kill的软件包,它提供了一个简单的单行解决方案:
var kill = require('tree-kill');
kill(streamingTask.pid);