小编Gho*_*toy的帖子

子进程不会被Node.JS杀死

我用child_process.exec/ child_process.spawn到一个新的进程,然后用杀死它child.kill/ process.kill.它可以很好地处理简单的二进制可执行文件,例如cat/ ls,并且子进程就会被杀死.

然而,当到达脚本(比如P1)叉另一个子进程(比如P2) ,仅脚本解释P1被打死,而不是子进程P2.

问题:有没有办法让Node.JS杀死这样的子进程P2?

代码工作正常run_and_kill('ls -Al /usr/lib'),但不适用于run_and_kill('firefox'):

function run_and_kill(cmd) {
    var exec = require('child_process').exec,
        ls = exec(cmd);
    console.log('Child process started: %d', ls.pid);
    ls.on('exit', function(code, signal) {
        console.log('exit with code %s and signal %s', code, signal);
    });
    ls.kill();
}
Run Code Online (Sandbox Code Playgroud)

javascript node.js

19
推荐指数
1
解决办法
7755
查看次数

标签 统计

javascript ×1

node.js ×1