nssm
DefinitelyTyped icon, indicating that this package has TypeScript declarations provided by the separate @types/nssm package

0.1.1 • Public • Published

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

alias value
auto SERVICE_AUTO_START
delayed SERVICE_DELAYED_START
demand SERVICE_DEMAND_START
manual SERVICE_DEMAND_START
disabled SERVICE_DISABLED

parameter: Type

alias value
standalone SERVICE_WIN32_OWN_PROCESS
interactive SERVICE_INTERACTIVE_PROCESS

parameter: AppPriority:

alias value
realtime REALTIME_PRIORITY_CLASS
high HIGH_PRIORITY_CLASS
above ABOVE_NORMAL_PRIORITY_CLASS
normal NORMAL_PRIORITY_CLASS
below BELOW_NORMAL_PRIORITY_CLASS
idle IDLE_PRIORITY_CLASS

Credits

Alexander

Links to package pages:

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

License

MIT

Package Sidebar

Install

npm i nssm

Weekly Downloads

27

Version

0.1.1

License

MIT

Last publish

Collaborators

  • alykoshin