【发布时间】:2020-07-09 15:56:14
【问题描述】:
我正在编写一个 js 脚本来定位服务器上的所有 pid 文件,提取 pid,然后在每个文件上运行“ps -fp {pid}”并提取内存使用情况。
这是我目前得到的:
var exec = require('child_process').exec;
exec('(cd ~/; find . -type f -name "*.pid" )', (error, stdout, stderr) => {
if (error) {
return 1
}
var fileps = stdout.toString().split('\n');
fileps.pop()
var pidsarr = new Array;
function getpid(path) {
var command = `(cd ~/; cat ${path} )`;
exec(command, (error, stdout, stderr) => {
if (error) {
return 1
}
pid = parseInt(stdout.toString());
pidsarr.push(pid);
});
}
fileps.forEach(getpid);
console.log(pidsarr);
});
问题是 pidsarr 没有得到更新,可能是因为它没有被声明为全局或与 exec 不允许写入外部对象有关。
有什么方法可以让我的 pidsarr 数组在每次运行时附加?
【问题讨论】:
标签: javascript arrays linux exec global