我正在使用windows-service包来运行我的脚本作为Windows服务。
if (process.argv[2] == "--add") {
logger.info('Starting to add service', global.appRoot + "\\app.js")
ws.add (config.service_name, {programPath: global.appRoot + "\\app.js"});
logger.info('Service added', config.service_name, global.appRoot + "\\app.js")
} else if (process.argv[2] == "--remove") {
logger.info('Removing service', config.service_name)
ws.remove (config.service_name);
logger.info('Service removed', config.service_name)
} else if (process.argv[2] == "--run") {
logger.info('Starting service', config.service_name);
ws.run (logger, function() {
logger.info('Stopping service', config.service_name);
ws.stop()
logger.info('Service stopped')
});
} else if (process.argv[2] == "--stop") {
logger.info('Stopping service', config.service_name);
ws.stop()
logger.info('Service stopped')
}
运行“node service.js --add”后,我已通过以下命令验证我的Windows服务已正确安装
"C:\Program Files\nodejs\node.exe" "E:\Utils\app.js"
我将命令粘贴到node.js命令提示符下,它正确启动了脚本。
但是,当我尝试从服务控制台启动Windows服务时,它总是抱怨
Error 1053: The service did not respond to the start or control request in a timely fashiion.
我尝试了“node service.js --run”,它只是打印出“Starting service”消息并挂起。底层脚本也没有启动。
验证服务日志,没有错误。不会生成特定于脚本的日志。
我的所有脚本对象都使用global.appPath进行绝对路径引用。
我没有想法。关于此事的任何建议?