Node.JS Windows服务无法启动

时间:2015-05-12 09:03:43

标签: node.js windows-services

我正在使用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进行绝对路径引用。

我没有想法。关于此事的任何建议?

0 个答案:

没有答案