diff options
author | osmiy <osmiy@97f52cf1-0a1b-0410-bd0e-c28be96e8082> | 2005-10-12 08:52:14 +0000 |
---|---|---|
committer | osmiy <osmiy@97f52cf1-0a1b-0410-bd0e-c28be96e8082> | 2005-10-12 08:52:14 +0000 |
commit | be486186a47bada0536ed3366416f117f7d7a929 (patch) | |
tree | e693d69ab5df4b65c95a491502f04248afe1f77a /src/libs/zbxsysinfo | |
parent | b84948ab39ad2ec2ac025619a2e8ec9250e89335 (diff) | |
download | zabbix-be486186a47bada0536ed3366416f117f7d7a929.tar.gz zabbix-be486186a47bada0536ed3366416f117f7d7a929.tar.xz zabbix-be486186a47bada0536ed3366416f117f7d7a929.zip |
- added support of proc.mem[process,user,mode] (Eugene)
git-svn-id: svn://svn.zabbix.com/trunk@2175 97f52cf1-0a1b-0410-bd0e-c28be96e8082
Diffstat (limited to 'src/libs/zbxsysinfo')
-rw-r--r-- | src/libs/zbxsysinfo/common/common.c | 66 | ||||
-rw-r--r-- | src/libs/zbxsysinfo/linux/Makefile.am | 2 | ||||
-rw-r--r-- | src/libs/zbxsysinfo/linux/linux.c | 2 |
3 files changed, 41 insertions, 29 deletions
diff --git a/src/libs/zbxsysinfo/common/common.c b/src/libs/zbxsysinfo/common/common.c index b0b601c5..667ab69f 100644 --- a/src/libs/zbxsysinfo/common/common.c +++ b/src/libs/zbxsysinfo/common/common.c @@ -694,7 +694,14 @@ int PROC_NUM(const char *cmd, const char *param,double *value) } else { - if(strcmp(procname, psinfo.pr_fname)==0) + if(procname[0] != 0) + { + if(strcmp(procname, psinfo.pr_fname)==0) + { + proccount++; + } + } + else { proccount++; } @@ -734,7 +741,7 @@ int PROC_NUM(const char *cmd, const char *param,double *value) int proc_ok = 0; int usr_ok = 0; - struct passwd *usrinfo; + struct passwd *usrinfo = NULL; int proc_uid = 0; FILE *f; @@ -754,14 +761,17 @@ int PROC_NUM(const char *cmd, const char *param,double *value) if(get_param(param, 2, usrname, MAX_STRING_LEN) != 0) { usrname[0] = 0; - usrinfo = NULL; } else { - usrinfo = getpwnam(usrname); - if(usrinfo == NULL) + if(usrname[0] != 0) { - return SYSINFO_RET_FAIL; + usrinfo = getpwnam(usrname); + if(usrinfo == NULL) + { + /* incorrect user name */ + return SYSINFO_RET_FAIL; + } } } @@ -794,36 +804,36 @@ int PROC_NUM(const char *cmd, const char *param,double *value) { continue; } - fgets(line,MAX_STRING_LEN,f); - - if(sscanf(line,"%s\t%s\n",name1,name2)==2) - { - if(strcmp(name1,"Name:") == 0) - { - if(strcmp(procname,name2)==0) - { - proc_ok = 1; - } - } - } - else - { - fclose(f); - continue; - } + + if(procname[0] != 0) + { + fgets(line,MAX_STRING_LEN,f); + if(sscanf(line,"%s\t%s\n",name1,name2)==2) + { + if(strcmp(name1,"Name:") == 0) + { + if(strcmp(procname,name2)==0) + { + proc_ok = 1; + } + } + } - if(proc_ok == 0) + if(proc_ok == 0) + { + fclose(f); + continue; + } + } + else { - fclose(f); - continue; + proc_ok = 1; } if(usrinfo != NULL) { - while(fgets(line, MAX_STRING_LEN, f) != NULL) { - if(sscanf(line, "%s\t%i\n", name1, &proc_uid) != 2) { continue; diff --git a/src/libs/zbxsysinfo/linux/Makefile.am b/src/libs/zbxsysinfo/linux/Makefile.am index 61445b63..4e57c84f 100644 --- a/src/libs/zbxsysinfo/linux/Makefile.am +++ b/src/libs/zbxsysinfo/linux/Makefile.am @@ -1,6 +1,6 @@ SUBDIRS= -libzbxsysinfo2_a_SOURCES=cpu.c diskio.c diskspace.c inodes.c memory.c sensors.c swap.c uptime.c +libzbxsysinfo2_a_SOURCES=cpu.c diskio.c diskspace.c inodes.c memory.c proc.c sensors.c swap.c uptime.c lib_LIBRARIES=libzbxsysinfo2.a libzbxsysinfo2_a_LIBADD = ../../zbxcommon/libzbxcommon.a ../../zbxcrypto/libzbxcrypto.a diff --git a/src/libs/zbxsysinfo/linux/linux.c b/src/libs/zbxsysinfo/linux/linux.c index 71da5581..6ccfffee 100644 --- a/src/libs/zbxsysinfo/linux/linux.c +++ b/src/libs/zbxsysinfo/linux/linux.c @@ -91,6 +91,7 @@ int AGENT_PING(const char *cmd, const char *parameter,double *value); int VM_MEMORY_SHARED(const char *cmd, const char *parameter,double *value); int VM_MEMORY_TOTAL(const char *cmd, const char *parameter,double *value); int PROC_NUM(const char *cmd, const char *parameter,double *value); +int PROC_MEMORY(const char *cmd, const char *param, double *value); int PROCCOUNT(const char *cmd, const char *parameter,double *value); int SYSTEM_CPU_LOAD1(const char *cmd, const char *parameter,double *value); @@ -182,6 +183,7 @@ COMMAND parameters_specific[]= {"kernel.maxproc" ,KERNEL_MAXPROC, 0, 0}, {"proc.num[*]" ,PROC_NUM, 0, "inetd"}, + {"proc.mem[*]" ,PROC_MEMORY, 0, "inetd,root,sum"}, {"vm.memory.total" ,VM_MEMORY_TOTAL, 0, 0}, {"vm.memory.shared" ,VM_MEMORY_SHARED, 0, 0}, |