Как получить конкретное значение из команды статуса в Linux программно

1

Я пытаюсь использовать следующую команду '/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
  • 0
    Вы должны просто открыть / proc / what / status в виде файла. Попытка создать процесс cat для чтения файла и получения результатов из консоли - это сложный обходной путь, который доставит вам гораздо больше проблем, чем необходимо.
  • 0
    @Pac0 Pac0 приведи пример
Показать ещё 1 комментарий

1 ответ

0

Вы можете запустить эту команду для обработки текста и чтения значений из файла в 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-');
}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню