Node.js - spawn 正在截断结果

Node.js - spawn is cutting off the results

我正在为 return linux top 命令的输出创建一个节点程序,工作正常,唯一的问题是命令名称被截断,而不是完整的命令名称,例如/usr/local/libexec/netdata/plugins.d/apps.plugin 1 returns /usr/local+

我的代码

const topparser=require("topparser")
const spawn = require('child_process').spawn
let proc=null
let startTime=0

exports.start=function(pid_limit,callback){
    startTime=new Date().getTime()
    proc = spawn('top', ['-c','-b',"-d","3"])
    console.log("started process, pid: "+proc.pid)
    let top_data=""

    proc.stdout.on('data', function (data) {
      console.log('stdout: ' + data);
    })

    proc.on('close', function (code) {
      console.log('child process exited with code ' + code);
    });


}//start

exports.stop=function(){
    console.log("stoped process...")
    if(proc){proc.kill('SIGINT')}// SIGHUP -linux ,SIGINT -windows
}//stop

结果

14861 root      20   0       0      0      0 S   0.0  0.0   0:00.00 [kworker/1+
14864 root      20   0       0      0      0 S   0.0  0.0   0:00.02 [kworker/0+
15120 root      39  19  102488   3344   2656 S   0.0  0.1   0:00.09 /usr/bin/m+
16904 root      20   0       0      0      0 S   0.0  0.0   0:00.00 [kworker/0+
19031 root      20   0       0      0      0 S   0.0  0.0   0:00.00 [kworker/u+
21500 root      20   0       0      0      0 Z   0.0  0.0   0:00.00 [dsc] <def+
22571 root      20   0       0      0      0 S   0.0  0.0   0:00.00 [kworker/0+

有什么办法可以解决吗? 最好的问候

来自 top 联机帮助页:

In Batch mode, when used without an argument top will format output using the COLUMNS= and LINES= environment variables, if set. Otherwise, width will be fixed at the maximum 512 columns. With an argument, output width can be decreased or increased (up to 512) but the number of rows is consid‐ ered unlimited.

'-w', '512' 添加到参数中。

由于您使用节点,因此您可以在本地主机上查询网络数据 运行。

示例:

http://london.my-netdata.io/api/v1/data?chart=apps.cpu&after=-1&options=ms

对于本地主机网络数据: http://localhost:19999/api/v1/data?chart=apps.cpu&after=-1&options=ms

您还可以获得系统服务:

http://london.my-netdata.io/api/v1/data?chart=services.cpu&after=-1&options=ms

如果您不打算每秒更新屏幕,您可以指示 netdata return 较长持续时间的平均值:

http://london.my-netdata.io/api/v1/data?chart=apps.cpu&after=-5&points=1&group=average&options=ms

以上return是最近5秒的平均值。

最后,您将获得所有指标 netdata 监视器的最新值,其中:

http://london.my-netdata.io/api/v1/allmetrics?format=json

为了完整起见,netdata 可以为 shell 脚本导出 BASH 格式的所有指标。检查这个:https://github.com/firehol/netdata/wiki/receiving-netdata-metrics-from-shell-scripts