【问题标题】:How to prevent ipmi-sensors output to stdout using FreeIPMI API如何使用 FreeIPMI API 防止 ipmi-sensors 输出到标准输出
【发布时间】:2017-05-16 09:44:47
【问题描述】:

我正在尝试从 ipmi-sensors 的输出中获取一些信息,例如 CPU_TEMP、CPU_FAN 等,并保存这些值以供另一个 API 使用。守护进程将从远程发送命令以收集所有主机的硬件状态。

我正在跟踪 ipmi-sensors.c 的代码和相关文件,例如 ipmi-sensors-simple-output.c 和 ipmi-sensors-detail-output.c。我发现 ipmi-sensors 默认输出到标准输出。在main()中,ipmi-sensors首先调用ipmi_sensors_argp_parse

ipmi_sensors_argp_parse (/*argc, argv, */&cmd_args);

我想从API获取ipmi-sensors数据,我不使用argcargv,我标记出argcargv并为此修改函数调用的内容.

然后 main() 调用另一个函数pstdout_setup 来设置输出的标准输出

if ((hosts_count = pstdout_setup (&(prog_data.args->common_args.hostname),
                &(prog_data.args->common_args))) < 0)
    return (EXIT_FAILURE);

并启动它

if ((rv = pstdout_launch (prog_data.args->common_args.hostname,
                          _ipmi_sensors,
                          &prog_data)) < 0)

FreeIPMI 中是否有任何 API 调用来执行ipmi-sensors 的任务?或者我是否需要使用forkdup2 将标准输出重定向到流或文件?还是我需要重写ipmi-sensors的全部部分?

感谢您的帮助。

【问题讨论】:

标签: c ipmi


【解决方案1】:

FreeIPMI 维护者在这里。我相信您正在寻找的 API 是“libipmimonitoring”,它完成了 ipmi-sensors 中大约 90% 的功能。

【讨论】:

  • 是的,我已经阅读了 libipmimonitoring 文件夹中的 ipmi-monitoring.c,但是我还有一个问题,与 ipmitool 的结果比较,输出不同,我想得到所有DIMM 信息检查 DIMM 是否已插入但在 ipmi-monitoring.c 中找不到该信息。
  • 对于那些迟到的人,请回答此线程中后续的先前评论:stackoverflow.com/questions/44296332/…
猜你喜欢
  • 1970-01-01
  • 2011-03-29
  • 2017-11-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多