2017-12-11 8 views
1

プログラムで'/proc/' + process.pid + '/status'というコマンドを使用しようとしています。私は次のように書きました。linuxのstatusコマンドから特定の値をプログラムで得るには

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

しかし、私は次のように値のリストに沿っています。

以下の投稿されたリストからプログラムによって特定の値にアクセスするにはどうすればよいですか?例えば、VmSize:813500キロバイト

は、私は、次のコードを書きましたが、それは

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 /何/ステータス。ファイルを読み込んでコンソールから結果を得るためにcatプロセスを生成しようとすると、複雑な回避策が必要となり、必要以上に多くの問題が発生します。 – Pac0

+0

@ Pac0あなたは例を挙げてください。 – LetsamrIt

+0

ファイルから読み込む例がありますか? [ここ](https://docs.nodejitsu.com/articles/file-system/how-to-read-files-in-nodejs/)を参照してください。 –

答えて

0

このコマンドを実行すると、テキスト処理を行い、bash/terminalのファイルから値を読み取ることができます。これらのプログラムを使用するこのコマンド​​、grepcut

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-'); 
} 
関連する問題