diff options
Diffstat (limited to 'main/zabbix/zabbix-getloadavg.patch')
-rw-r--r-- | main/zabbix/zabbix-getloadavg.patch | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/main/zabbix/zabbix-getloadavg.patch b/main/zabbix/zabbix-getloadavg.patch new file mode 100644 index 000000000..44706abeb --- /dev/null +++ b/main/zabbix/zabbix-getloadavg.patch @@ -0,0 +1,33 @@ +diff --git a/src/libs/zbxsysinfo/linux/cpu.c b/src/libs/zbxsysinfo/linux/cpu.c +index a76e756..9f9031d 100644 +--- a/src/libs/zbxsysinfo/linux/cpu.c ++++ b/src/libs/zbxsysinfo/linux/cpu.c +@@ -22,6 +22,28 @@ + #include "sysinfo.h" + #include "stats.h" + ++#ifndef HAVE_GETLOADAVG ++/*! \brief Alternative method of getting load avg on Linux only */ ++int getloadavg(double *list, int nelem) ++{ ++ FILE *LOADAVG; ++ double avg[3] = { 0.0, 0.0, 0.0 }; ++ int i, res = -1; ++ ++ if ((LOADAVG = fopen("/proc/loadavg", "r"))) { ++ fscanf(LOADAVG, "%lf %lf %lf", &avg[0], &avg[1], &avg[2]); ++ res = 0; ++ fclose(LOADAVG); ++ } ++ ++ for (i = 0; (i < nelem) && (i < 3); i++) { ++ list[i] = avg[i]; ++ } ++ ++ return res; ++} ++#endif ++ + int SYSTEM_CPU_NUM(const char *cmd, const char *param, unsigned flags, AGENT_RESULT *result) + { + char mode[32]; |