nodejs在真实shell中生成一个进程并终止此进程

时间:2016-12-08 08:45:00

标签: node.js shell spawn

我在nodejs中使用选项shell:true创建了一个使用spawn创建的进程,因此该进程在一个真实的shell中启动。因此,当我尝试用streamingTask.kill()杀死此过程时,它无效。没有选项shell:true一切正常。

这是我的代码的外观:

var options = {shell:true};  
streamingTask = spawn('gst-launch-1.0',args,options);

... 

streamingTask.kill()

那么我现在该如何杀死这个过程呢?

1 个答案:

答案 0 :(得分:3)

这不起作用,因为你要杀死shell进程本身,而不是shell(gst-launch-1.0在你的情况下)生成的子进程。

在npm上有一个名为tree-kill的软件包,它提供了一个简单的单行解决方案:

var kill = require('tree-kill');
kill(streamingTask.pid);