Browse Source

ChildProcesses cannot be killed if pid is missing

v0.7.4-release
Ryan Dahl 14 years ago
parent
commit
5a98fa4809
  1. 21
      lib/child_process.js

21
lib/child_process.js

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

Loading…
Cancel
Save