首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Node.js/ other :如何识别进程是windows进程还是其他应用程序进程

Node.js/ other :如何识别进程是windows进程还是其他应用程序进程
EN

Stack Overflow用户
提问于 2018-05-28 18:55:06
回答 1查看 1.2K关注 0票数 1

我正在开发一个应用程序,它给出了CPU使用率最高的5个应用程序名称。目前,我从以下代码中获得了排名前5的应用程序:

代码语言:javascript
复制
    var _ = require('lodash');
    var ps = require('current-processes');

     ps.get(function(err, processes) {

        var sorted = _.sortBy(processes, 'cpu');
        var top5  = sorted.reverse().splice(0, 5); // Top 5 results

        console.log(top5);

    });

输出:在image中附加o/p:

我还研究过其他方法:

代码语言:javascript
复制
var exec = require('child_process').exec;
  exec('tasklist', function(err, stdout, stderr) {
    var lines = stdout.toString().split('\n');
    console.log(lines);
  });

输出图像

但我无法识别进程(Pid)是windows服务还是其他应用程序。简而言之,我不想展示任何系统服务。有没有其他方法来确定这一点?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-05-28 19:39:05

tasklist是一种可以接受的方式。

可以按Session NameUsername列筛选出系统应用程序和服务。

可以使用tasklist帮助程序包来代替手动解析命令输出。

基本上,应该过滤掉N/A (可以本地化)和NT AUTHORITY\* (可以有本地名称,因此NT AUTHORITY\SYSTEM不可靠)用户和服务(可能属于以前的类别):

代码语言:javascript
复制
tasklist({ verbose: true })
.then(apps => {
  apps = apps
  .filter(app => app.sessionName !== 'Services')
  .filter(app => /^(?!NT AUTHORITY).+\\/.test(app.username));

  console.log(apps)
})
.catch(console.error);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50564760

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档