我正在尝试以编程方式使用以下命令'/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/终端中的文件读取值。此命令使用这些程序cat
,grep
,cut
。
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-');
}