Comparing version 0.1.1 to 0.1.2
89
init.js
@@ -96,29 +96,67 @@ (function() { | ||
}; | ||
exports.stop = function(pidfile, cb) { | ||
exports.hardKiller = function(timeout) { | ||
if (timeout == null) { | ||
timeout = 2000; | ||
} | ||
return function(pid, cb) { | ||
var signals, tryKill; | ||
signals = ['TERM', 'INT', 'QUIT', 'KILL']; | ||
tryKill = function() { | ||
var sig; | ||
sig = "SIG" + signals[0]; | ||
try { | ||
process.kill(pid, sig); | ||
if (signals.length > 1) { | ||
signals.shift(); | ||
} | ||
return setTimeout((function() { | ||
return tryKill(sig); | ||
}), timeout); | ||
} catch (e) { | ||
return cb(signals.length < 4); | ||
} | ||
}; | ||
return tryKill(); | ||
}; | ||
}; | ||
exports.softKiller = function(timeout) { | ||
if (timeout == null) { | ||
timeout = 2000; | ||
} | ||
return function(pid, cb) { | ||
var sig, tryKill; | ||
sig = "SIGTERM"; | ||
tryKill = function() { | ||
var first; | ||
try { | ||
process.kill(pid, sig); | ||
console.log("Waiting for pid " + pid); | ||
if (sig !== 0) { | ||
sig = 0; | ||
} | ||
first = false; | ||
return setTimeout(tryKill, timeout); | ||
} catch (e) { | ||
return cb(sig === 0); | ||
} | ||
}; | ||
return tryKill(); | ||
}; | ||
}; | ||
exports.stop = function(pidfile, cb, killer) { | ||
if (cb == null) { | ||
cb = exports.stopped; | ||
} | ||
if (killer == null) { | ||
killer = exports.hardKiller(2000); | ||
} | ||
return exports.status(pidfile, function(_arg) { | ||
var pid, signals, tryKill; | ||
var pid; | ||
pid = _arg.pid; | ||
if (pid) { | ||
signals = ['TERM', 'INT', 'QUIT', 'KILL']; | ||
tryKill = function() { | ||
var sig; | ||
sig = "SIG" + signals[0]; | ||
try { | ||
process.kill(pid, sig); | ||
if (signals.length > 1) { | ||
signals.shift(); | ||
} | ||
return setTimeout((function() { | ||
return tryKill(sig); | ||
}), 2000); | ||
} catch (e) { | ||
return fs.unlink(pidfile, function() { | ||
return cb(signals.length < 4); | ||
}); | ||
} | ||
}; | ||
return tryKill(); | ||
return killer(pid, function(killed) { | ||
return fs.unlink(pidfile, function() { | ||
return cb(killed); | ||
}); | ||
}); | ||
} else { | ||
@@ -130,5 +168,6 @@ return cb(false); | ||
exports.simple = function(_arg) { | ||
var command, logfile, pidfile, run, start; | ||
pidfile = _arg.pidfile, logfile = _arg.logfile, command = _arg.command, run = _arg.run; | ||
var command, killer, logfile, pidfile, run, start; | ||
pidfile = _arg.pidfile, logfile = _arg.logfile, command = _arg.command, run = _arg.run, killer = _arg.killer; | ||
command || (command = process.argv[2]); | ||
killer || (killer = null); | ||
start = function() { | ||
@@ -145,3 +184,3 @@ return exports.start({ | ||
case 'stop': | ||
return exports.stop(pidfile); | ||
return exports.stop(pidfile, null, killer); | ||
case 'status': | ||
@@ -151,3 +190,3 @@ return exports.status(pidfile); | ||
case 'force-reload': | ||
return exports.stop(pidfile, start); | ||
return exports.stop(pidfile, start, killer); | ||
case 'try-restart': | ||
@@ -154,0 +193,0 @@ return exports.stop(pidfile, function(killed) { |
@@ -15,3 +15,3 @@ { | ||
], | ||
"version" : "0.1.1", | ||
"version" : "0.1.2", | ||
"licences" : [ | ||
@@ -41,5 +41,5 @@ { | ||
"email" : "frodwith@gmail.com", | ||
"name" : "Paul Drvier" | ||
"name" : "Paul Driver" | ||
} | ||
] | ||
} |
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
11285
206
147