gpt4 book ai didi

javascript - 使用node child_process.exec执行top命令时如何解决错误?

转载 作者:行者123 更新时间:2023-11-30 07:51:37 25 4
gpt4 key购买 nike

我正在尝试使用 node.js 执行一堆 bash 命令。我使用 child_process.exec 来执行命令。

var child_process = require('child_process');
child_process.exec("ps -p $(lsof -ti tcp:8088) o pid=,comm=",function(err,stdout, stderr){
if(err){
console.log('error',err);
return;
}
console.log('stdout', stdout);
});

这将列出在端口 8088 中运行的进程 ID 以及名称。以类似的方式,当我尝试使用进程 ID 执行 top 命令以检查 cpu 和内存利用率时。我遇到了一个错误。

var execTop = function(pid){
child_process.exec("top -p 12769", function(err, stdout, stderr){
if(err){
console.log('error',err);
return;
}
console.log("top output",stdout);
})
}

我在网上找不到太多资源来澄清这个问题。实际错误是

error { [Error: Command failed: /bin/sh -c top -p 12769
top: failed tty get
]
killed: false,
code: 1,
signal: null,
cmd: '/bin/sh -c top -p 12769' }

我很欣赏建议的可能解决方案。提前致谢。

最佳答案

如果你真的想像这样运行top,你需要在“批处理模式”中运行,比如:

top -b -n 1 -p 12345

这是因为 top 通常是一个交互式命令,并希望有一个实际的终端来写入。您可能需要考虑使用类似 ps u -p 12345 的方式来获得更简洁的输出。

关于javascript - 使用node child_process.exec执行top命令时如何解决错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51903907/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com