nssm
v0.1.1
Published
Wrapper for nssm.exe to manage windows services
Downloads
54
Maintainers
Readme
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
Links to package pages:
github.com npmjs.com travis-ci.org coveralls.io inch-ci.org
License
MIT