ChildProcesses cannot be killed if pid is missing

This commit is contained in:
Ryan Dahl 2010-10-20 17:55:25 -07:00
parent 78da9cb052
commit 5a98fa4809

View File

@ -62,15 +62,8 @@ exports.execFile = function (file /* args, options, callback */) {
var stderr = "";
var killed = false;
function kill(){
if (killed) return;
try {
function kill () {
child.kill(options.killSignal);
} catch (err) {
if ("No such process" !== err.message) {
throw err;
}
}
killed = true;
}
@ -167,10 +160,12 @@ util.inherits(ChildProcess, EventEmitter);
ChildProcess.prototype.kill = function (sig) {
if (this._internal.pid) {
if (!constants) constants = process.binding("constants");
sig = sig || 'SIGTERM';
if (!constants[sig]) throw new Error("Unknown signal: " + sig);
return this._internal.kill(constants[sig]);
}
};