在Node.JS中从内部杀死子进程

时间:2012-12-12 11:49:01

标签: node.js kill-process child-process

有没有办法杀死让孩子过程“自杀”?我尝试使用process.exit(1),但显然它会杀死我正在运行的整个应用程序。我只想杀死子进程(就像我们从子进程的“父亲”调用process.kill()时)。在子进程中调用process.kill()会导致整个应用程序崩溃。

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

process始终是对主流程的引用。但你可以简单地使用它:

var spawn = require( "child_process" ).spawn;

// example child process
var grep = spawn( "grep", [ "ssh"] );

grep.on( "exit", function (code, signal) {
    console.log( "child process terminated due to receipt of signal "+signal);
});

grep.kill( "SIGHUP" );

我想这取决于你如何使用子进程。但是如果你没有对子进程的引用,那么你就无能为力了。

警告:杀死子进程几乎不是一个好主意。您应该向子进程发送消息并在该进程中处理它。