如何通过编程中的Linux中的状态命令具有特定值



我正在尝试以编程方式使用以下命令'/proc/' + process.pid + '/status'。所以我写了以下

const ls2 = spawn('cat', ['/proc/' + process.pid + '/status'])

但是我得到的是值列表,如下所示。

如何从以下发布的列表中访问特定值?例如, VMIZE:813500 KB

我编写了以下代码,但它不起作用

const { spawn } = require('child_process');
var process = require('process');
const ls2 = spawn('cat', ['/proc/' + process.pid + '/status']);
ls2.stdout.on('data', (data) => {
console.log('ls2:stdout: ' + 'processId: ' + process.pid + '-->' + data.toString().split(' '));
});

请让我知道如何修改我提供的代码,以便我可以从已发布的列表中访问特定值

结果

ls2:stdout: processId: 11723-->Name:    node
Umask:  0002
State:  R (running)
Tgid:   11723
Ngid:   0
Pid:    11723
PPid:   2263
TracerPid:  0
Uid:    1000    1000    1000    1000
Gid:    1000    1000    1000    1000
FDSize: 512
Groups: 4 24 27 30 46 113 128 1000 
NStgid: 11723
NSpid:  11723
NSpgid: 1885
NSsid:  1885
VmPeak:   814012 kB
VmSize:   813500 kB
VmLck:         0 kB
VmPin:         0 kB
VmHWM:     29504 kB
VmRSS:     29504 kB
RssAnon:        7804 kB
RssFile:       21700 kB
RssShmem:          0 kB
VmData:    41524 kB

您可以运行此命令来进行文本处理并从bash/终端中的文件读取值。此命令使用这些程序catgrepcut

cat /proc/[process id]/status | grep [field_nanme] | cut -f2-

示例:

cat /proc/[process id]/status | grep Uid | cut -f2-

您可以在node.js中运行此命令:

var process = require('process');
if (process.pid) {
    var output = system('cat /proc/' + process.pid + '/status | grep Uid | cut -f2-');
}

最新更新