为了账号安全,请及时绑定邮箱和手机立即绑定

从 Go 代码调用 typeperf 以接收系统信息

从 Go 代码调用 typeperf 以接收系统信息

Go
郎朗坤 2023-04-24 16:28:08
我正在尝试获取进程列表,包括它们的当前负载。 typeperf "\Process(*)\% Processor Time" -sc 1似乎给了我想要的输出。从作品中执行cmd。现在我尝试从我的 Go 代码中调用该命令// Command to list processescmdPS := exec.Command("typeperf", "\"\\Process(*)\\% Processor Time\"", "-sc", "1")cmdPS.Stdout = &buffcmdPS.Stderr = &errBufferr := cmdPS.Run()if err != nil {    log.Printf("Err: %s", buff.String())    return nil, errors.Wrapf(err, "Failed to call: ps ax -o")}这导致:Exiting, please wait...Error: No valid counters.Note:  In order to use typeperf, you must either be a member of the local  Performance Log Users group, or the command must be executed from an  elevated command window.我格式化命令字符串的方式有误吗?我希望直接执行此命令并通过 Go 执行它会以相同的权限运行。
查看完整描述

1 回答

?
慕婉清6462132

TA贡献1804条经验 获得超2个赞

看起来您需要删除转义引号。shell(或本例中的 cmd)将为您处理参数。

但是,typeperf "\Process(*)\% Processor Time" -sc 1 在我的机器上运行以下结果。

Error: No valid counters.

Note:
  In order to use typeperf, you must either be a member of the local
  Performance Log Users group, or the command must be executed from an
  elevated command window.


查看完整回答
反对 回复 2023-04-24
  • 1 回答
  • 0 关注
  • 177 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信