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

Mas*_*iar 5 kill-process child-process node.js

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

任何的想法?

fre*_*ish 3

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" );
Run Code Online (Sandbox Code Playgroud)

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

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