我正在尝试从ipmi传感器的输出中获取一些信息,例如CPU_TEMP,CPU_FAN,...并保存这些值以供其他API使用。守护程序将从远程发送命令来收集所有主机的硬件状态。
我正在跟踪ipmi-ensors.c和相关文件的代码,比如ipmi-sensors simple-output.c和ipmi-sensors detail-output.c。我发现ipmi-sensors默认输出为stdout。在main()中,ipmi-sensors首先调用ipmi_sensors_argp_parse,
ipmi_sensors_argp_parse (/*argc, argv, */&cmd_args);我想从一个应用程序接口中获取ipmi-sensors数据,我没有使用argc,argv,我标记了argc,argv并为此修改了函数调用的内容。
然后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在FreeIPMI中有没有API调用来完成ipmi-sensors的任务?或者我需要使用fork和dup2将标准输出重定向到流或文件?或者我需要重写ipmi-sensors的所有部分?
谢谢你的帮助。
发布于 2017-05-23 00:25:36
这里是FreeIPMI维护者。我相信你正在寻找的API是"libipmimonitoring",它完成了ipmi传感器中大约90%的功能。
https://stackoverflow.com/questions/43997929
复制相似问题