微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在Node JS中杀死进程之前检查进程所有者名称

如何解决在Node JS中杀死进程之前检查进程所有者名称

是否有任何 Node 库提供获取所有者姓名的选项?这是为了避免在多用户系统的情况下杀死用户的进程。

使用以下代码片段杀死进程。

                    const find = require('find-process');

                    find('name','Teams',true).then(function (list) {
                    var i;
                    for (i = 0; i < list.length; i++) {
                        //logger.info(list[i].pid);
                        process.kill(list[i].pid);

                      }
                    });

是否确保返回当前用户的进程或在杀死它之前需要检查用户名检查?

如何获得流程所有者的姓名? (如Similar to C#

添加时间:2021 年 8 月 3 日。

现在我看到有一些软件包可用,但仅限于某些操作系统版本。 在这种情况下,我正在 Windows 10 中寻找某种方式。

  1. 登录用户和进程的所有者名称和/或 uid
  2. 要杀死的进程的所有者名称和/或 uid(返回进程列表所需详细信息的包)

解决方法

首先,您需要获取系统上正在运行的进程列表。为此,您可以使用此节点包 ps-list

要获取列表,您可以编写以下代码:

const psList = require('ps-list');
(async () => {
    console.log(await psList());
    //=> [{pid: 3213,name: 'node',cmd: 'node test.js',ppid: 1,uid: 501,cpu: 0.1,memory: 1.5},…]
})();

一旦你得到了,你可以从进程列表中获取 uids,然后将它与运行节点进程的当前用户进行匹配。 要获取当前运行节点进程的用户的 uid,可以这样写:

const os=require("os");
const userInfo=os.userInfo();
console.log(userInfo.uid);

一旦您获得了将 uid 与当前用户匹配的进程,您就可以使用此 code 终止这些进程。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。