summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorhugetoad <hugetoad@97f52cf1-0a1b-0410-bd0e-c28be96e8082>2006-07-07 12:07:51 +0000
committerhugetoad <hugetoad@97f52cf1-0a1b-0410-bd0e-c28be96e8082>2006-07-07 12:07:51 +0000
commitbfd3e07a5eed7eef2384f42217f49eb25599c740 (patch)
treee8184766e7ef3ff211d323837a31cd4f12287ac7 /src
parent8c158ab11193523f8bcf000385f4f624b9314f97 (diff)
downloadzabbix-bfd3e07a5eed7eef2384f42217f49eb25599c740.tar.gz
zabbix-bfd3e07a5eed7eef2384f42217f49eb25599c740.tar.xz
zabbix-bfd3e07a5eed7eef2384f42217f49eb25599c740.zip
- added removal of stat file on agent shutdown (Alexei)
- added new parameter StatFile to ZABBIX config file (Alexei) git-svn-id: svn://svn.zabbix.com/trunk@3021 97f52cf1-0a1b-0410-bd0e-c28be96e8082
Diffstat (limited to 'src')
-rw-r--r--src/zabbix_agent/stats.c31
-rw-r--r--src/zabbix_agent/zabbix_agentd.c15
2 files changed, 32 insertions, 14 deletions
diff --git a/src/zabbix_agent/stats.c b/src/zabbix_agent/stats.c
index a0b70689..25e01046 100644
--- a/src/zabbix_agent/stats.c
+++ b/src/zabbix_agent/stats.c
@@ -64,28 +64,37 @@
{0}
};*/
+extern char *CONFIG_STAT_FILE;
+
void collect_statistics()
{
FILE *file;
+ char tmpname[MAX_STRING_LEN];
+
for(;;)
{
- file=fopen("/tmp/zabbix_agentd.tmp2","w");
+ memset(tmpname, 0, MAX_STRING_LEN);
+ strscpy(tmpname, CONFIG_STAT_FILE);
+ strncat(tmpname, "2", MAX_STRING_LEN);
+ file=fopen(tmpname,"w");
if(NULL == file)
{
- zabbix_log( LOG_LEVEL_CRIT, "Cannot open file [%s] [%s]\n","/tmp/zabbix_agentd.tmp2", strerror(errno));
- exit(1);
+ zabbix_log( LOG_LEVEL_CRIT, "Cannot open file [%s] [%s]",tmpname, strerror(errno));
+ return;
}
- else
- {
- /* Here is list of functions to call periodically */
- collect_stats_interfaces(file);
- collect_stats_diskdevices(file);
- collect_stats_cpustat(file);
+ /* Here is list of functions to call periodically */
+ collect_stats_interfaces(file);
+ collect_stats_diskdevices(file);
+ collect_stats_cpustat(file);
- fclose(file);
- rename("/tmp/zabbix_agentd.tmp2","/tmp/zabbix_agentd.tmp");
+ fclose(file);
+ if(-1 == rename(tmpname,CONFIG_STAT_FILE))
+ {
+ zabbix_log( LOG_LEVEL_CRIT, "Cannot rename file [%s] to [%s] [%s]",tmpname,CONFIG_STAT_FILE,strerror(errno));
+ return;
}
+
sleep(1);
}
}
diff --git a/src/zabbix_agent/zabbix_agentd.c b/src/zabbix_agent/zabbix_agentd.c
index 92c18bec..b06ab585 100644
--- a/src/zabbix_agent/zabbix_agentd.c
+++ b/src/zabbix_agent/zabbix_agentd.c
@@ -106,6 +106,7 @@ char *CONFIG_HOSTS_ALLOWED = NULL;
char *CONFIG_HOSTNAME = NULL;
char *CONFIG_FILE = NULL;
char *CONFIG_PID_FILE = NULL;
+char *CONFIG_STAT_FILE = NULL;
char *CONFIG_LOG_FILE = NULL;
int CONFIG_AGENTD_FORKS = AGENTD_FORKS;
/*int CONFIG_NOTIMEWAIT = 0;*/
@@ -134,6 +135,12 @@ void uninit(void)
}
}
+ if( unlink(CONFIG_STAT_FILE) != 0)
+ {
+ zabbix_log( LOG_LEVEL_WARNING, "Cannot remove STAT file [%s]",
+ CONFIG_STAT_FILE);
+ }
+
if( unlink(CONFIG_PID_FILE) != 0)
{
zabbix_log( LOG_LEVEL_WARNING, "Cannot remove PID file [%s]",
@@ -272,7 +279,7 @@ void init_config(void)
{"Hostname",&CONFIG_HOSTNAME,0,TYPE_STRING,PARM_OPT,0,0},
{"PidFile",&CONFIG_PID_FILE,0,TYPE_STRING,PARM_OPT,0,0},
{"LogFile",&CONFIG_LOG_FILE,0,TYPE_STRING,PARM_OPT,0,0},
-/* {"StatFile",&CONFIG_STAT_FILE,0,TYPE_STRING,PARM_OPT,0,0},*/
+ {"StatFile",&CONFIG_STAT_FILE,0,TYPE_STRING,PARM_OPT,0,0},
{"DisableActive",&CONFIG_DISABLE_ACTIVE,0,TYPE_INT,PARM_OPT,0,1},
{"EnableRemoteCommands",&CONFIG_ENABLE_REMOTE_COMMANDS,0,TYPE_INT,PARM_OPT,0,1},
{"Timeout",&CONFIG_TIMEOUT,0,TYPE_INT,PARM_OPT,1,30},
@@ -319,10 +326,10 @@ void init_config(void)
}
}
-/* if(CONFIG_STAT_FILE == NULL)
+ if(CONFIG_STAT_FILE == NULL)
{
CONFIG_STAT_FILE=strdup("/tmp/zabbix_agentd.tmp");
- }*/
+ }
}
void load_user_parameters(void)
@@ -634,6 +641,8 @@ int main(int argc, char **argv)
collect_statistics();
+ uninit();
+
/*
#ifdef HAVE_PROC_NET_DEV
collect_statistics();