【发布时间】:2020-04-09 04:52:48
【问题描述】:
我已经使用 node-windows 包从 nodeJs 应用程序创建了 windows 服务。下面是我的代码。
Main.js
var Service = require('node-windows').Service;
// Create a new service object
var svc = new Service({
name:'SNMPCollector',
description: 'SNMP collector',
script: './app.js',
nodeOptions: [
'--harmony',
'--max_old_space_size=4096'
]
//, workingDirectory: '...'
});
// Listen for the "install" event, which indicates the
// process is available as a service.
svc.on('install',function(){
svc.start();
});
svc.install();
/* svc.uninstall(); */
App.js
const { workerData, parentPort, isMainThread, Worker } = require('worker_threads')
var NodesList = ["xxxxxxx", "xxxxxxx"]
module.exports.run = function (Nodes) {
if (isMainThread) {
while (Nodes.length > 0) {
// my logic
})
}
}
}
现在当我运行 main.js 时,它会创建一个 Windows 服务,我可以看到该服务在 services.msc 中运行
但是,如何从任何外部应用程序调用运行服务内部的这个 run() 方法?我找不到任何解决方案,任何帮助都会很棒。
【问题讨论】:
-
您可以为它创建一个 CLI。不行吗?
-
如何创建 cli ?
-
我无法在评论中解释整个事情。但我强烈推荐这篇文章developer.okta.com/blog/2019/06/18/command-line-app-with-nodejs
-
您不会创建服务以使用其他脚本/程序按需运行它;服务用于执行某种任务或操作。您可以使用您可能使用的服务创建 HTTP 端点。
标签: javascript node.js windows-services node-windows