Я пытаюсь использовать следующую команду '/proc/' + process.pid + '/status'
программно. поэтому я написал следующее
const ls2 = spawn('cat', ['/proc/' + process.pid + '/status'])
но то, что я получаю, - это список значений, как показано ниже.
как получить доступ к определенной ценности из приведенного ниже списка программным путем? например, VmSize: 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/terminal. Эта команда использует эти программы 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-');
}