};
process.kill = function(pid, sig) {
- sig = sig || 'SIGTERM';
-
- if (!startup.lazyConstants()[sig]) {
- throw new Error('Unknown signal: ' + sig);
+ // preserve null signal
+ if (0 === sig) {
+ process._kill(pid, 0);
+ } else {
+ sig = sig || 'SIGTERM';
+ if (startup.lazyConstants()[sig]) {
+ process._kill(pid, startup.lazyConstants()[sig]);
+ } else {
+ throw new Error('Unknown signal: ' + sig);
+ }
}
-
- process._kill(pid, startup.lazyConstants()[sig]);
};
};
--- /dev/null
+
+var assert = require('assert');
+var spawn = require('child_process').spawn;
+
+var cat = spawn('cat');
+var called;
+
+process.kill(cat.pid, 0);
+
+cat.stdout.on('data', function(){
+ called = true;
+ process.kill(cat.pid, 'SIGKILL');
+});
+
+// EPIPE when null sig fails
+cat.stdin.write('test');
+
+process.on('exit', function(){
+ assert.ok(called);
+});
\ No newline at end of file