2017-04-04 137 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中搜索與您的特定服務啓動器配合使用的模塊並使用它。

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

因爲你沒在你的問題包括,什麼操作系統的任何信息,什麼樣的方式來啓動服務你正在使用,很難給你一個更詳細的答案。

相關問題