除了命令行之外,无法使os-service应用程序正常工作

时间:2016-06-23 04:15:01

标签: node.js powershell express

我有一个node.js应用程序,我想作为Windows服务运行,我正在使用os-service来尝试实现它。

该服务看似正确安装,Windows服务管理控制台提供有关它的信息:

在列表中:

Name: wibble
Description: (blank)
Status: (blank)
Startup Type: automatic
Log On As: Local System

在属性/常规窗格中: 可执行文件的路径:

"C:\Program Files\nodejs\node.exe" "C:\path\to\app.js" "--run"

尝试使用powershell启动此服务

Start-Service wibble

生成一条错误消息,其中包含:无法在计算机上启动服务wibble'。'

尝试从管理界面的“启动服务”链接启动此服务与服务管理器中选择的服务会产生不同的错误消息: Windows无法启动本地计算机上的轻触服务。错误1053:服务未及时响应启动或控制请求。

以下工作,从与应用程序相同的文件夹中的powershell执行时。客户端可以成功连接并使用该应用程序:

node app.js --run

但是,powershell会在此时停止,直到CTRL + C停止服务。

这是我添加到应用程序中的JS,以使其作为服务运行:

var service = require('os-service');
var fs = require('fs');

process.chdir(__dirname);
if (process.argv[2] == '--run') {
    var fn = process.env.LOCALAPPDATA + '/path/to/wibble.log';
    var logStream = fs.createWriteStream (fn);
    service.run (logStream, function () {
        'use strict';
        service.stop (0);
    });
    // rest of app here
}
module.exports = app

希望我忽视了一些愚蠢的事情。感谢你能不能发现它!

0 个答案:

没有答案