control-c - npm
ControlC is simple utility, handles SIGINT or Control-C.
Also suppot single control-c, double control-c, triple control-c and so on.
For example, print current status on single control-c,
reset or re-initialize on double control-c,
clean up and exit on triple control-c,
ignore quadruple or more control-c, and so on.
$ npm install control-c
var ControlC = require('control-c');
Add new handlers to handle SIGINT (Control-C).
var c1 = new ControlC(
function singleControlC() { console.log('single ctrl-c'); },
function doubleControlC() { console.log('double ctrl-c'); },
function tripleControlC() { console.log('triple ctrl-c'); this.remove(); },
function ignoreControlC() {});
// or
var c2 = ControlC(
function singleControlC() { console.log('single ctrl-c'); },
function doubleControlC() { console.log('double ctrl-c'); },
function tripleControlC() { console.log('triple ctrl-c'); this.remove(); },
function ignoreControlC() {});
// or
var c3 = ControlC.create(
function singleControlC() { console.log('single ctrl-c'); },
function doubleControlC() { console.log('double ctrl-c'); },
function tripleControlC() { console.log('triple ctrl-c'); this.remove(); },
function ignoreControlC() {});
- handlers...: SIGINT handler functions, required
ControlC instance.
Remove and add to hande SIGINT.
var c1 = new ControlC(function () {},
function () { this.remove(); });
c1.remove();
c1.add();
Control-C timeout interval. milliseconds.
ControlC.interval = 400;
console.log(ControlC.interval);
- interval: Control-C timeout interval, between 200 and 2000 msec, default 400 msec
'use strict';
var ControlC = require('control-c');
var singleCount = 0;
var doubleCount = 0;
new ControlC(
function singleControlC() { console.log('Single:', ++singleCount); },
function doubleControlC() { console.log('Double:', ++doubleCount); },
function tripleControlC() { console.log('Reset'); singleCount = doubleCount = 0; },
function quadrupleControlC() { console.log('Exit'); process.nextTick(process.exit); },
function ignoreControlC() {});
console.log('press control-c in 30 seconds.');
setTimeout(function () {}, 30000);
MIT