我正在尝试创建一个从虚拟机获取指标的REST API,但我似乎无法运行我的子进程,而不会超出'标准超出maxBuffer'。这是我的代码
const { exec } = require('child_process');
exec('top', (error, stdout, stderr) => {
if (error) {
console.error(`exec error: ${error}`);
return;
}
console.log(`stdout: ${stdout}`);
console.log(`stderr: ${stderr}`);
});
答案 0 :(得分:3)
top
(使用它的默认参数)将继续写入stdout
- 它不只是转储一些信息并退出。
如果您想使用top
,请查看手册页。特别是-b
选项:
-b :Batch-mode operation
Starts top in 'Batch' mode, which could be useful for sending output from top to other programs or to a file. In this mode, top will not accept input and runs until the iterations limit you've set
with the '-n' command-line option or until killed.
请尝试top -b -n 1
从top
获取单个“批量”信息,然后解析该信息。