Node.js 如何通知Windows服务已启动?
我正在运行一个nodejs HTTP服务器,它被打包为带有pkg npm模块的exe二进制文件。我需要将其作为windows服务运行。正常启动时工作正常。但如果我将其作为windows服务运行,会发生以下情况:Node.js 如何通知Windows服务已启动?,node.js,windows-services,Node.js,Windows Services,我正在运行一个nodejs HTTP服务器,它被打包为带有pkg npm模块的exe二进制文件。我需要将其作为windows服务运行。正常启动时工作正常。但如果我将其作为windows服务运行,会发生以下情况: 我开始服务 Windows尝试启动该服务 在此期间,HTTP服务器是可访问的,并且工作正常 Windows服务在30秒后超时并显示错误:“服务未及时响应启动或控制请求。” 在我看来,不知何故,我不得不通知windows我的服务已经启动,让我保持开放 我该怎么做?常规应用程序不能作为W
- 我开始服务
- Windows尝试启动该服务
- 在此期间,HTTP服务器是可访问的,并且工作正常
- Windows服务在30秒后超时并显示错误:“服务未及时响应启动或控制请求。”
我该怎么做?常规应用程序不能作为Windows服务工作。因此,实施要满足一定的要求, 服务程序必须包括的服务控制管理器(SCM)的接口要求: 服务入口点 服务主要功能 服务控制处理程序函数 有一个包允许安装启动Node.js脚本的服务。默认情况下,当前脚本被视为入口点:
const osService = require('os-service');
const [action] = process.argv.slice(2);
function errorHandler(err) {
if (!err) return;
console.error(err);
process.exit(1);
}
if (action === '--install') {
osService.add('Foo', errorHandler);
} else if (action === '--uninstall') {
osService.remove('Foo', errorHandler);
} else {
// report service as running
osService.run('Foo', () => {
osService.stop();
});
// app entry point
}