0.1.1 • Published 7 years ago

nssm v0.1.1

Weekly downloads
23
License
MIT
Repository
github
Last release
7 years ago

npm version Build Status Coverage Status Code Climate Inch CI

Dependency Status devDependency Status

nssm

Wrapper for nssm.exe to manage Windows services with Promises support

If you have different needs regarding the functionality, please add a feature request.

Supported node version: "node": ">=0.12"

Installation

npm install --save nssm

Usage

Require the module:

var Nssm = require('nssm');

Instantiate the object providing service name and options object (so far options object may contains only one parameter nssmExe - path to nssm.exe):

var nssm = Nssm('AeLookupSvc', { nssmExe: 'nssm.exe' });

Execute command by calling appropriate method and passing arguments with callback function. For example, to set startup type:

nssm.set('Start', 'manual', function(error, result) {
  if (error) {
    console.log('*** error:', error, ' stderr:', result);
    return;
  }
  console.log('*** stdout: \'' + result + '\'');
});

You may find this example in examples/set.js.

Promises version:

var Nssm = require('nssm');
//var Nssm = require('../');

var svcName = 'AeLookupSvc';
var options = { nssmExe: 'nssm.exe' }; // default
var nssm = Nssm(svcName, options);

var propertyName = 'Start';

nssm.get(propertyName)
  .then(function(stdout) {
    console.log('then(): stdout: \'' + stdout + '\'');
  })
  .catch(function(error) {
    console.log('catch(): error:', error);
  })
  ;

You may find this example in examples/get_promise.js.

With Promises calls may be chained:

nssm.set('start', 'manual')
  .then(function(stdout) {
    return nssm.get('start')
  })
  .then(function(stdout) {
    return nssm.start()
  })
  .then(function(stdout) {
    return nssm.stop()
  })
  .then(function(stdout) {
    console.log('DONE');
  })
  .catch(function(error) {
    console.log('ERROR:', error);
  })
  ;

You may find this example in examples/get_promise.js.

Also, you may use callback and Promise simultaneously if needed.

Examples

restart

Please, set the proper name of the service.

var Nssm = require('nssm');
//var Nssm = require('../');

var svcName = 'AeLookupSvc';
var options = { nssmExe: 'nssm.exe' }; // default
var nssm = Nssm(svcName, options);

nssm.restart(function(error, result) {
  if (error) {
    console.log('*** error:', error, ' stderr:', result);
    return;
  }
  console.log('*** stdout: \'' + result + '\'');
});

You may find this example in examples/restart.js.

get

Please, set the proper name of the service.

var Nssm = require('nssm');
//var Nssm = require('../');

var svcName = 'AeLookupSvc';
var options = { nssmExe: 'nssm.exe' }; // default
var nssm = Nssm(svcName, options);

nssm.get('Start', function(error, result) {
  if (error) {
    console.log('*** error:', error, ' stderr:', result);
    return;
  }
  console.log('*** stdout: \'' + result + '\'');
});

You may find this example in examples/get_callback.js and examples/get_promises.js.

set

Please, set the proper name of the service.

var Nssm = require('nssm');
//var Nssm = require('../');

var svcName = 'test';
var options = { nssmExe: 'nssm.exe' }; // default
var nssm = Nssm(svcName, options);

nssm.set('Start', 'manual', function(error, result) {
  if (error) {
    console.log('*** error:', error, ' stderr:', result);
    return;
  }
  console.log('*** stdout: \'' + result + '\'');
});

You may find this example in examples/set.js.

Options object

options.nssmExe - String - pathname of nssm.exe, default: nssm.exe

Available commands:

'install',
'remove',
'start',
'stop',
'restart',
'status',
'pause',
'continue',
'rotate',
'get',
'set',
'reset',

Please, refer to nssm manual for the info on usage: https://nssm.cc/commands.

Aliases

You may also use following aliases when setting parameters values with set method.

parameter: Start

aliasvalue
autoSERVICE_AUTO_START
delayedSERVICE_DELAYED_START
demandSERVICE_DEMAND_START
manualSERVICE_DEMAND_START
disabledSERVICE_DISABLED

parameter: Type

aliasvalue
standaloneSERVICE_WIN32_OWN_PROCESS
interactiveSERVICE_INTERACTIVE_PROCESS

parameter: AppPriority:

aliasvalue
realtimeREALTIME_PRIORITY_CLASS
highHIGH_PRIORITY_CLASS
aboveABOVE_NORMAL_PRIORITY_CLASS
normalNORMAL_PRIORITY_CLASS
belowBELOW_NORMAL_PRIORITY_CLASS
idleIDLE_PRIORITY_CLASS

Credits

Alexander

Links to package pages:

github.com   npmjs.com   travis-ci.org   coveralls.io   inch-ci.org

License

MIT