Sign Up for Free

RunKit +

Try any Node.js package right in your browser

This is a playground to test code. It runs a full Node.js environment and already has all of npm’s 400,000 packages pre-installed, including finis with all npm packages installed. Try it out:

var finis = require("finis")

This service is provided by RunKit and is not affiliated with npm, Inc or the package authors.

finis v0.4.3

Node.js program finisher - run your last callback with `exit code` and `signal name` as arguments



Run your callback before node exit, pass exit code and signal name as arguments


npm install finis --save


finis() installs a callback function which will be run just before the node process exits.

The callback function will be called when:

  1. the process exits normally
  2. the user presses Ctrl+C
  3. an exception is uncaught



const finis = require('finis')

finis((code, signal, error) => {
  console.log(`finis(${code}, ${signal}, ${error})`)


import finis from 'finis'

finis((code: number, signal: 'exit'|'SIGINT'|'SIGTERM'|'uncaughtException', error?: Error) => {
  console.log(`finis(${code}, ${signal}, ${error})`)

You may call finis() multiple times to install multiple callback functions.


v0.4 Nov 2017

  1. Do not call process.exit by default
  2. Add support to SIGTERM
  3. Add support to TypeScript

v0.1 Dev 2016

This module is inspired by @jtlapp/node-cleanup, which is borrowed and modified from CanyonCasa's answer to a stackoverflow question. I found the code necessary for all my node projects. See the stackoverflow answer for more examples of use.


Huan LI <> (

profile for zixia at Stack Overflow, Q&A for professional and enthusiast programmers


  • Code & Docs © 2016-2017 Huan LI <>
  • Code released under the Apache-2.0 License
  • Docs released under Creative Commons
RunKit is a free, in-browser JavaScript dev environment for prototyping Node.js code, with every npm package installed. Sign up to share your code.
Sign Up for Free