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
我正在为 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