node package manager


A Simple service manager

A simple service manager.

[sudo] npm install svcmgr

svcmgr is a really simple service manager that loads, starts, stops, and unloads Node modules.

A service module can export any of the 4 lifecycle handlers: load, start, stop, and unload.

Service modules can also have dependencies. You can declare them by export a dependencies property with an array of dependencies. When a service is being loaded, it will load the dependencies first, then pass them to the service's lifecycle handlers.


var svcmgr = require('svcmgr');

	// arbitrary config settings to pass to all services
	logger: console

svcmgr.load(['myservice'], function (err, services) {'main: all services loaded');

	svcmgr.start(function () {'main: all services started');

var exiting = false;
process.on('exit', function () {
	if (!exiting) {'main: shutting down');
		svcmgr.unload(function () {'main: all services stopped and unloaded');

// listen for ctrl-c
process.on('SIGINT', function () {
	exiting = true;
	console.log('\nmain: ctrl-c detected, shutting down');
	svcmgr.unload(function () {'main: all services stopped and unloaded');


var timer;

exports.dependencies = [ 'mydep' ];

exports.load = function (deps, cfg, callback) {
	// init stuff'myservice: load handler');

exports.start = function (deps, cfg, callback) {
	// start stuff'myservice: start handler');'myservice: calling sayHello() in 3 seconds...');
	timer = setTimeout(function () {
	}, 3000);

exports.stop = function (deps, cfg, callback) {
	// stop stuff
	clearTimeout(timer);'myservice: stop handler');

exports.unload = function (deps, cfg, callback) {
	// shutdown stuff'myservice: unload handler');


var hello;

exports.load = function (cfg) {
	hello = cfg.hello || "Hello";

exports.sayHello = function (msg) {'mydep: ' + hello + ' ' + msg);

This project is open source and provided under the Apache Public License (version 2). Please make sure you see the LICENSE file included in this distribution for more details on the license. Also, please take notice of the privacy notice at the end of the file.

(C) Copyright 2014, Appcelerator Inc. All Rights Reserved.