2017-04-04 145 views
1

我想在节点js中编写一个程序,获取机器上运行的服务列表并查找其状态。节点js中是否有任何命令或api提供机器上运行的服务列表。 我试着运行节点的sc查询命令使用节点j在机器上运行的服务列表

var exec = require("child_process").exec; 
exec("sc query state= all", function(err, stdout) { 
var lines = stdout.toString().split("\r\n").filter(function (line) { 
    return line.indexOf("SERVICE_NAME") !== -1; 
}).map(function (line) { 
    return line.replace("SERVICE_NAME: ", ""); 
}); 
console.log(lines); 

});

这给了我一系列的服务运行......如何修改它得到一个二维数组来获得服务的名称和服务

+0

谢谢你的回答....我试过var exec = require(“child_process”)。exec; (“sc query state = all”,function(err,stdout)var lines = stdout.toString().split(“\ r \ n”)。filter(function(line){ return line.indexOf (“SERVICE_NAME”)!== -1; })。map(function(line){ return line.replace(“SERVICE_NAME:”,“”); }); console.log(lines); }); ..................这运行sc查询并给出运行................的服务的数组。这是一个好方法吗? – Aparna

回答

0

的状态有一个为此,称为“windows-service-controller”的NPM模块。这里是文档link

0

这一切都取决于服务是如何启动的以及操作系统是什么。

某些服务可能会启动例如与PM2 - 对于您可以使用PM2的程序化API:

其他一些服务可以由init脚本,暴发户,systemd或任何其他方式启动。在npm中搜索与您的特定服务启动器配合使用的模块并使用它。

例如,如果你使用的新贵:

因为你没在你的问题包括,什么操作系统的任何信息,什么样的方式来启动服务你正在使用,很难给你一个更详细的答案。

相关问题